【发布时间】:2020-07-11 11:57:29
【问题描述】:
我只想从另一个文件中导入一个函数,但我收到了以下错误消息:
SyntaxError: 不能在模块外使用 import 语句
我没有使用任何 html 文件。我只使用带有 webpack 的 js 文件,它在控制台上使用yarn start返回结果@
这是包含我要导出的函数的文件的代码:
export function assert(value, desc) {
return value ? console.log(desc) : console.log('fail')
}
这里是我要导入函数的文件代码:
import {assert} from './assert.js'
function juggle() {
var result = 0;
for(var n=0; n < arguments.length; n++) {
result += arguments[n]
}
this.result = result
}
var ninja1 = {}
var ninja2 = {}
juggle.apply(ninja1, [1,2,3,4])
juggle.call(ninja2, 5,6,7,8)
assert(ninja1.result === 10, "juggled via apply")
assert(ninja2.result === 26, "juggled via call")
这是我的package.json:
我不知道解决这个问题是否有用,但是如果你想看的话,这里是。
{
"name": "c",
"version": "1.0.0",
"main": "",
"scripts": {
"start": "node Cap_03/01_apply_e_call.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"webpack-dev-server": "^3.9.0"
},
"type": "module",
"devDependencies": {
"webpack": "^4.41.2"
},
"description": ""
}
【问题讨论】:
-
你的脚本标签中有
type="module"吗? -
不,我没有。我没有使用任何 html 文件。我只用 js 文件做所有的事情。因为它不是应用程序。学习语言只是一些简单的文件。有什么办法吗?只使用 js 文件?
-
通过节点?也许您只需要在 package.json 中添加
"type": "module"。看看这个:nodejs.org/api/esm.html#esm_enabling -
@dork 它仍然无法正常工作。我在我的代码中对其进行了测试。我根据您的建议编辑了问题,它继续显示相同的错误消息。
标签: javascript import export node-modules yarnpkg