gpt4 book ai didi

javascript - Node.js 需要 webpacked 模块

转载 作者:行者123 更新时间:2023-11-30 20:35:58 25 4
gpt4 key购买 nike

我正试图摆脱你在 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 失败。


谁有在 Node.js 项目中使用打包模块的解决方案?

P.S.:我尝试使用 yarnyarn autoclean --force 来删除所有不必要的文件,但它只删除了总数的 5% 到 10% .

最佳答案

使用当前 node 配置对象和设置 fs: 'empty' 的问题是它将为这些模块提供一个空对象。有关 Webpack Node 的更多信息 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

关于javascript - Node.js 需要 webpacked 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49833697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com