【问题标题】:Webpack resolve.alias not working in node/server sideWebpack resolve.alias 在节点/服务器端不起作用
【发布时间】:2020-08-10 17:17:49
【问题描述】:

我想在发布该组件之前在主仓库中测试我的依赖关系。所以我使用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")
  }
},

【问题讨论】:

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


    【解决方案1】:

    对所有别名使用 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有一个很好的解释。

    【讨论】:

    • 已经在 '@select/components' 中使用 path.resolve。还是不行
    • 能否分享一下您的组件是如何在代码中导入的?
    • 从'@select/components'导入{组件};
    猜你喜欢
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    相关资源
    最近更新 更多