Node.js 需要 webpacked 模块

Node.js require webpacked modules

我正试图摆脱你在 npm install 具有自己的依赖项的各种模块后获得的数千个文件。

因此我想 编译 仅使用 webpack 的库到一个 javascript 文件(和其他所需资源) ,然后以这种方式将其加载到 Node.js 项目中:

我遇到的问题是某些模块需要系统(或不可编译)模块,例如fs,webpack 试图将它们捆绑到。 您只需在 webpack.config.js 文件中指定:

node: {
    fs : "empty",
    electron : "empty"
}

但是,一旦打包到 bundle 中,似乎每个 require('fs') 都被 Object.freeze({}) 替换,因为这个设置,然后模块使用 fs.[=21= 失败]


有人能提供在 Node.js 项目中使用打包模块的解决方案吗?

P.S.: 我尝试使用 yarnyarn 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