问题描述
如果您正在编写要在 NodeJS 中运行的 ES6 模块,您如何import
另一个包含本机编译代码的模块?
例如,如果我在 "type": "module"
中设置了 package.json
,请执行 npm install talib
然后尝试运行:
import talib from 'talib';
我在 Node v16.2.0 中遇到此错误:
node:internal/process/esm_loader:74
internalBinding('errors').triggeruncaughtException(
^
TypeError [ERR_UNKNowN_FILE_EXTENSION]: UnkNown file extension ".node" for node_modules/talib/build/Release/talib.node
at new NodeError (node:internal/errors:363:5)
at Loader.defaultGetFormat [as _getFormat] (node:internal/modules/esm/get_format:71:15)
at Loader.getFormat (node:internal/modules/esm/loader:105:42)
at Loader.getModuleJob (node:internal/modules/esm/loader:243:31)
at async ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:75:21)
at async Promise.all (index 0)
at async link (node:internal/modules/esm/module_job:80:9) {
code: 'ERR_UNKNowN_FILE_EXTENSION'
}
talib
是一个例子,但还有许多其他例子,它们都表现出相同的行为。他们似乎都在使用 node-gyp
来构建。
如何在自己的 ES6 模块代码中使用这些模块? talib
和朋友之类的模块是否需要更改?如果是,应该改变什么,是否向后兼容?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)