【问题标题】:do I bundle my dependencies with wepback for production我是否将我的依赖项与 webpack 捆绑在一起进行生产
【发布时间】:2018-08-04 07:18:09
【问题描述】:

我正在使用 webpack 创建用于运行快速应用程序的生产包。我认为 webpack externals 字段将捆绑我需要部署的依赖项,而无需进行 yarn install 或 npm install。

我的服务器 webpack 配置如下所示:

      const config = merge(common, {
        name: 'server',
        target: 'node',
        externals: readdirSync(path.join(__dirname, '../../node_modules'))
  .filter(x => !/\.bin|react-universal-component|require-universal-module|webpack-flush-chunks/.test(x))
  .reduce((externals, mod) => {
    externals[mod] = `commonjs ${mod}`;
    return externals;
  }, {});

我可以在外部列表中看到以下 express 条目:

express: 'commonjs express',

但是当我尝试使用需要明确依赖的脚本执行文件时,我得到:

找不到模块“快递”

我认为 externals 的全部意义在于指定应该捆绑的内容。

【问题讨论】:

    标签: javascript node.js webpack


    【解决方案1】:

    我认为外部的全部意义在于指定应该是什么 捆绑。

    是相反的,来自webpack documentation

    externals 配置选项提供了一种排除方式 来自输出包的依赖项。相反,创建的包 依赖于消费者环境中存在的依赖关系。

    所以你不希望在你的外部文件中出现express,因为它实际上会从包中排除。

    【讨论】:

    • 最好的方法是什么?实时服务器上的 npm?
    • 或者我为什么要为我排除的东西指定 commonjs
    • 我通常在 CI 服务器上执行此操作,安装依赖项等。如果您没有,您可以在服务器上执行此操作
    • 我不知道你为什么需要 commonjs,因为它是 node 原生支持的?
    • 我的意思是为什么要为我排除的东西指定任何内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多