我正在使用webpack来创建用于运行快速应用程序的生产包。我认为webpack externals字段会捆绑我需要部署的依赖项,而无需进行yarn安装或npm安装。
我的服务器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: 'commonjs express',
但是当我尝试使用需要明确依赖的脚本执行文件时,我得到了:
找不到模块'表达'
我认为外部的重点是指定应捆绑的内容。
答案 0 :(得分:0)
相反我认为外部的重点是指明应该是什么 捆绑在一起。
externals配置选项提供了一种排除方式 输出包的依赖关系。相反,创建的包 依赖于依赖性存在于消费者的环境中。
因此,您不希望express
出现在您的外部,因为它实际上会从捆绑包中排除。