【发布时间】:2018-09-24 19:11:03
【问题描述】:
我正试图摆脱您在npm install 各种具有自己依赖关系的模块时获得的数千个文件。
因此我想编译只使用 webpack 的库到一个 javascript 文件(和其他所需资源)中,然后以这种方式将其加载到 Node.js 项目:
-
入口点,将被 webpack 编译成 bundle。
module.exports = { lodash : require('lodash'), colors : require('colors'), test : require('test'), abc : require('abc') } ; -
主要
var { lodash, colors, test, abc } = require('./lib/bundle') ;
我遇到的问题是某些模块需要系统(或不可编译)模块,例如fs,而 webpack 试图将它们捆绑到。
您只需在webpack.config.js 文件中指定:
node: {
fs : "empty",
electron : "empty"
}
但是,一旦打包成包,似乎每个 require('fs') 都会因为这个设置而被 Object.freeze({}) 替换,然后模块使用 fs 失败。
有人有在 Node.js 项目中使用打包模块的解决方案吗?
P.S.:我尝试使用 yarn 和 yarn autoclean --force 来删除所有不必要的文件,但它只删除了总数的 5% 到 10%。
【问题讨论】:
标签: javascript node.js npm webpack node-modules