我想使用WebPack捆绑后端代码 . 根据其他stackoverflow答案的建议,我使用了here描述的配置文件:
var webpack = require('webpack');
var path = require('path');
var fs = require('fs');
var nodeModules = {};
fs.readdirSync('node_modules')
.filter(function(x) {
return ['.bin'].indexOf(x) === -1;
})
.forEach(function(mod) {
nodeModules[mod] = 'commonjs ' + mod;
});
module.exports = {
entry: './src/main.js',
target: 'node',
output: {
path: path.join(__dirname, 'build'),
filename: 'backend.js'
},
externals: nodeModules
}
但即使在阅读了解释为什么我们必须将 node_module
中的所有模块列为外部的文章后,我仍然感到困惑,为什么我们必须采取这一步,为什么没有它,我们得到这个错误:
WARNING in ./~/express/lib/view.js
Critical dependencies:
特别是有人可以解释这一段,具体如何 src/main.js
src/main.js
是这个问题的一个例子:
但是有一个问题 . Webpack将从node_modules文件夹加载模块并将它们捆绑在一起 . 这适用于前端代码,但后端模块通常没有为此做好准备(即以奇怪的方式使用require),或者更糟的是二进制依赖项 . 我们根本不想捆绑任何来自node_modules的东西 .
我想更好地理解WebPack中的这一步,所以我不只是盲目地复制配置文件并自满而言它是有效的 .
谢谢