我有一个使用 require 构建的项目,但现在我需要使用一个包@nfteyez/sol-rayz,它只支持 ES6 导入。
我无法添加 type: module,因为有很多文件。
我曾尝试将文件更改为 mjs,但在使用 require 导入另一个文件时出现错误。
我在示例中发现,当您启用可以使用导入的模块时,这是可能的:
// Define "require"
import { createRequire } from "module";
const require = createRequire(import.meta.url);
是否有类似的导入?我正在使用 Node v17
最佳答案
使用动态 import()
函数。
let solRayz = await import('@nfteyez/sol-rayz');
要完全抑制并使用一种通用样式,这是非常困难的,因为隐式包在它们的包文件中有自己的模块系统。对于这个特定问题,以下链接可能会有所帮助
目前还不能完全灵活地使用模块系统
What is the difference between .js and .mjs files?
https://nodejs.org/docs/latest/api/esm.html#esm_differences_between_es_modules_and_commonjs
https://www.geeksforgeeks.org/how-to-use-an-es6-import-in-node-js/
关于javascript - Node : use import in only one file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70990714/