Javascript Node.js需要网页包模块
我正试图摆脱在Javascript Node.js需要网页包模块,javascript,node.js,npm,webpack,node-modules,Javascript,Node.js,Npm,Webpack,Node Modules,我正试图摆脱在npm安装后得到的上千个文件,因为各个模块都有自己的依赖项 因此,我考虑只使用webpack将库编译成一个javascript文件(以及其他必需的资源),然后通过以下方式将其加载到Node.js项目中: 入口点,该入口点将通过webpack编译成bundle module.exports = { lodash : require('lodash'), colors : require('colors'), test : require('test'),
npm安装后得到的上千个文件,因为各个模块都有自己的依赖项
因此,我考虑只使用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"
}
然而,一旦打包到bundle中,似乎每个require('fs')
都被Object.freeze({})
替换,因为这个设置,然后模块使用fs
失败
有人能在Node.js项目中使用打包模块吗
注意:我尝试使用纱线和纱线自动清理-强制删除所有不必要的文件,但它只删除了总数的5%到10%。使用当前节点
配置对象和设置fs:“empty”
的问题是,它将为这些模块提供一个空对象。有关网页包节点的详细信息
您可以将Webpacktarget
属性设置为
编译以在类似Node.js的环境中使用(使用Node.jsrequire
加载块,不接触任何内置模块,如fs
或path
)
阅读更多关于Webpack的信息
此外,要导入内置模块,请使用
生成Web包未解析的require
函数
module.exports = {
target: 'node'
};