javascript - 使用 node 中的 webpack 作为 commonjs 模块制作 Kafka.js 外部依赖
问题描述
我正在尝试使用此配置制作 kafkajs 外部依赖项(从 webpack 包中移出):
externals: {
kafkajs: 'kafkajs',
redis: 'redis'
}
依赖项:
dependencies: {
...
"kafkajs": "^1.12.0",
...
}
但我收到错误“找不到模块”:
{
"error": "Initialization has failed due to: Error: Cannot find module 'kafkajs'\n at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)\n at Function.Module._load (internal/modules/cjs/loader.js:507:25)\n at Module.require (internal/modules/cjs/loader.js:637:17)\n at require (internal/modules/cjs/helpers.js:22:18)\n at Object.<anonymous>"
}
我尝试清除缓存,再次保存依赖项并使用不同的外部配置:
externals: [
"kafkajs",
{
Kafka: {
commonjs: ["kafkajs", "Kafka"],
}
]
提前感谢您的任何指导
解决方案
如果您正在捆绑您的 node.js 应用程序,最好将所有 node_modules 标记为外部,有一个 lib 用于此,webpack-node-externals。
npm install webpack-node-externals --save-dev
//webpack.config.js
const nodeExternals = require('webpack-node-externals');
...
module.exports = {
...
target: 'node', // in order to ignore built-in modules like path, fs, etc.
externals: [nodeExternals()], // in order to ignore all modules in node_modules folder
...
};
推荐阅读
- spring-cloud-dataflow - Spring Cloud Dataflow Server 本地锁定 Jar
- java - java.lang.NoSuchMethodError: android.util.ArrayMap.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- c# - 使用 HMACSHA1 算法的哈希密码的最大长度是多少
- c# - 使用带有多个文件扩展名的 MapWhen
- python - childthread1 等到 childthread2 在 python 中完成它的执行?
- node.js - Post req (NodeJs/Express) 的问题 - 发送一个空对象?
- validation - 谷歌表格:有没有办法防止重复的月份条目?
- vimeo - 在白名单域中嵌入 Vimeo 密码保护的视频
- java - Android Java - 变量“适配器”可能尚未初始化
- node.js - 如何从我的 POST 请求负载中提取特定信息并保存到 txt 文件中?