意外标识符的 import 语句中遇到语法错误 Node : node start.js --experimental-modul-6ren">
gpt4 book ai didi

javascript - 即使设置了 --experimental-modules, Node 也不支持导入/导出

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:49 26 4
gpt4 key购买 nike

我试图让 Node 处理导入/导出,但我在 "import $"-> 意外标识符的 import 语句中遇到语法错误

Node :

node start.js --experimental-modules

start.js:

(() => {
import $ from "SCRIPT//CommonImport";
});

commonImport.js:

(() => {
export var $ = require("jquery");
});

package.json:

{
"type": "module",
"name": "lc.assets.hyper",
"version": "1.0.0",
"description": "brand new UI for LC Assets",
"main": "start.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Stein Lundbeck",
"license": "ISC",
"devDependencies": {
"jquery": "^3.4.1"
}
}

最佳答案

您必须在文件顶部声明所有导入,如下所示:

import $ from "/my/path"

并且您不能在函数内部使用 export 语句,它们必须在模块的上层作用域中声明。如果您使用 ES6 导入/导出,则不能使用 require (CommonJS),但可以使用 export ... from ... 构造:

export {default as $} from "jquery"

如果你想动态导入模块,你必须这样做:

async function myFunc() {
const exportedVar = await import('/my/path')
}

请注意,import() 返回一个 Promise,即它是异步操作,而不是像 require 那样同步。

另请注意,您不能像 import() 那样动态使用 export

关于javascript - 即使设置了 --experimental-modules, Node 也不支持导入/导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57233906/

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