gpt4 book ai didi

javascript - Webpack 在构建期间使用 Node 'fs' 模块,以便浏览器获取函数的结果

转载 作者:行者123 更新时间:2023-11-30 21:19:46 25 4
gpt4 key购买 nike

问题:有没有办法告诉 webpack 告诉内置模块 modules like fs 在构建期间执行,以便浏览器得到这个函数的结果,而不是函数调用自身?

我的情况:

目前我正在使用 webpack 为浏览器开发一个应用程序。我正在尝试在我的一个文件中使用 Node “fs”模块来请求其他目录中的 index.js 文件。例如:

plugins
├──plugin1
│   ├── index.js (simply exports an object)

├──plugin2
│  ├── index.js (simply exports an object)
|
├──plugin3
│  ├── index.js (simply exports an object)
|
|──index.js (want to require all index.js from each plugin directory here)

我收到 webpack 的错误提示:Can't resolve 'fs' in somepath/node_modules/require-dir

我的文件 index.js 位于 `plugins/index.js',它只是想请求我的其他文件。

  //module from NPM which uses the 'fs' module ('im not explicity using it)
const requireDir = require('require-dir');
const allPlugins = requireDir('./plugins/');
console.log(allPlugins);

无法在“/some_path/node_modules/require-dir”中解析“fs”

最佳答案

这里有两个选择。

  1. 我个人没有用过这个,但是你可以使用指定的node 配置值here .

Node :{
fs:{真,“模拟”,“空”,假}
}

fs 设置为上述任何值。

  1. 不要使用fs 模块。它是一个内置/ native 模块,可能依赖也可能不依赖 native V8/C++ 函数/库。请记住,webpack 通常会为浏览器 打包 Assets 。因此,您可以手动导入插件,而不是依赖插件:

plugins/index.js

const plugin1 = require('./plugin1')
const plugin2 = require('./plugin2')

module.exports = {
plugin1,
plugin2
}

你也可以使用 this回答 polyfill require-dir 模块。

关于javascript - Webpack 在构建期间使用 Node 'fs' 模块,以便浏览器获取函数的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45317947/

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