Node.js 需要 webpacked 模块
Node.js require webpacked modules
我正试图摆脱你在 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"
}
但是,一旦打包到 bundle 中,似乎每个 require('fs')
都被 Object.freeze({})
替换,因为这个设置,然后模块使用 fs
.[=21= 失败]
有人能提供在 Node.js 项目中使用打包模块的解决方案吗?
P.S.: 我尝试使用 yarn 和 yarn autoclean --force
来删除所有不必要的文件,但它只删除了 5%占总数的10%。
使用当前 node
配置对象和设置 fs: 'empty'
的问题在于它将为这些模块提供一个空对象。有关 Webpack 节点的更多信息 here.
您可以将 Webpack target
属性 设置为 'node'
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
)
module.exports = {
target: 'node'
};
阅读更多关于 Webpack 的内容 Targets
此外,要导入内置模块,请使用 __non_webpack_require__
Generates a require
function that is not parsed by webpack
我正试图摆脱你在 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"
}
但是,一旦打包到 bundle 中,似乎每个 require('fs')
都被 Object.freeze({})
替换,因为这个设置,然后模块使用 fs
.[=21= 失败]
有人能提供在 Node.js 项目中使用打包模块的解决方案吗?
P.S.: 我尝试使用 yarn 和 yarn autoclean --force
来删除所有不必要的文件,但它只删除了 5%占总数的10%。
使用当前 node
配置对象和设置 fs: 'empty'
的问题在于它将为这些模块提供一个空对象。有关 Webpack 节点的更多信息 here.
您可以将 Webpack target
属性 设置为 'node'
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
)
module.exports = {
target: 'node'
};
阅读更多关于 Webpack 的内容 Targets
此外,要导入内置模块,请使用 __non_webpack_require__
Generates a
require
function that is not parsed by webpack