Webpack resolve.alias在节点/服务器端不起作用

时间:2020-04-27 07:51:10

标签: node.js reactjs webpack server-side-rendering webpack-4

我想在发布该组件之前在主仓库中测试我的依赖关系。因此,我在客户端使用webpack.resolve.alias看起来不错,但在服务器端却无法使用。在服务器端,它仍然引用node_modules而不是别名路径。在我的webpack配置中,我有2个捆绑包(服务器和客户端)。

resolve: {
  alias: {
    '@select/components': path.resolve(__dirname, '../../components/packages/components/src'),
    react: path.join(__dirname, "../node_modules/react"),
    "react-dom": path.join(__dirname, "../node_modules/react-dom"),
    "styled-components": path.join(__dirname, "../node_modules/styled-components")
  }
},

1 个答案:

答案 0 :(得分:0)

对所有别名使用path.resolve:

resolve: {
  alias: {
    '@select/components': path.resolve(__dirname, '../../components/packages/components/src'),
    'react': path.resolve(__dirname, '../node_modules/react'),
    'react-dom': path.resolve(__dirname, '../node_modules/react-dom'),
    'styled-components': path.resolve(__dirname, '../node_modules/styled-components')
  }
},

从技术上讲,joinresolve__dirname都应得到相同的结果,但我个人更喜欢使用path.resolve作为别名。

关于join vs resolve的解释很好。

相关问题