webpack 不捆绑节点模块
webpack doesn't bundle node modules
我想从 node_modules 中获取一个模块并且我想将它捆绑(用于测试目的),但是 Webpack 的行为就像它被添加到外部一样。
// no externals or any plugin used
let config = {
mode: 'none',
target: 'node',
entry: {
output: `/example.js`,
},
resolve: {
extensions: ['.js'],
},
output: {
path: './dist',
},
};
// exampl.js
require('path')
// dist/output.js
require('path');
预期行为
要捆绑的节点模块path
实际行为
Webpack 保留 require('path');
这是设计使然。当你在 webpack config 中设置 target: 'node'
时,webpack 将不会捆绑 Node.js 的内置模块。 path
是Node.js的内置模块,不是来自node_modules
目录。
using node
webpack will compile for usage in a Node.js-like environment (uses Node.js require to load chunks and not touch any built in modules like fs
or path
).
我想从 node_modules 中获取一个模块并且我想将它捆绑(用于测试目的),但是 Webpack 的行为就像它被添加到外部一样。
// no externals or any plugin used
let config = {
mode: 'none',
target: 'node',
entry: {
output: `/example.js`,
},
resolve: {
extensions: ['.js'],
},
output: {
path: './dist',
},
};
// exampl.js
require('path')
// dist/output.js
require('path');
预期行为
要捆绑的节点模块path
实际行为
Webpack 保留 require('path');
这是设计使然。当你在 webpack config 中设置 target: 'node'
时,webpack 将不会捆绑 Node.js 的内置模块。 path
是Node.js的内置模块,不是来自node_modules
目录。
using
node
webpack will compile for usage in a Node.js-like environment (uses Node.js require to load chunks and not touch any built in modules likefs
orpath
).