javascript - 使用 Webpack 捆绑原生 Node 模块
问题描述
有一些节点模块(例如,名为 mssql/msnodesqlv8 的模块)我不能包含在我的 webpack 包中,除非我在 webpack 配置文件中指定 node-loader 加载器(否则会出现编译错误)。
现在,我的问题是,如果我使用下面列出的配置文件,我将不再有一个独立的 main-bundle.js 输出文件,但 webpack 也会将一个名为 {some-guid-value}.node 的文件放在输出文件夹,没有它 main-bundle.js 应用程序将无法运行。
所以我的问题是,在这种特定情况下,如何强制 webpack 输出一个独立的 bundle js 文件?
这是我的 webpack.config.js 文件:
const path = require('path');
module.exports = {
entry: './main.js',
output: {
filename: 'main-bundle.js',
path: path.resolve(__dirname, 'dist'),
libraryTarget: 'commonjs2'
},
target: 'node',
module: {
rules: [
{
test: /\.node$/,
loader: 'node-loader',
},
],
},
};
这是我的 package.json 文件:
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"msnodesqlv8": "^2.0.8",
"mssql": "^6.2.3"
},
"devDependencies": {
"node-loader": "^1.0.2"
}
}
谢谢!
解决方案
我也在同样的背景下苦苦挣扎。我已经创建了基于 webpack 的 react redux 配置,因为我不能使用节点模块的 fs、path、crypto。但是当我在 create-react-app 中使用这些模块时,它可以工作。我不知道为什么会这样。我尝试使用 npm 弹出,但无法找出具体的配置。
推荐阅读
- flutter - 我该如何解决“应该只有一项具有 [DropdownButton] 的值:null。” 颤振中的错误?
- objective-c - 添加跟踪区域时向实例发送无法识别的选择器
- iis - MVC5 控制器 (POST) 被调用两次(每周一次)
- reactjs - npm 在尝试运行它时在 Visual Studio 代码中抛出一些错误
- authentication - 使用 WebView2 cookie 下载 PDF
- java - 使用 log4j 的 Json 日志
- javascript - 更改 AngularJS 属性会更改 HTML 属性的值
- ros - 安装ROS后如何进一步配置?
- python - POS中分支总数的Django api函数
- python - Pandas groupby 并为数字列和时间列添加总计,想要添加平均值