我在做什么:我正在使用 Three.JS 编写一个小型 JavaScript 项目。由于我需要对数组进行一些高级操作,因此我想包含 lodash。
出了什么问题:每当我写
import _ from 'lodash';
时,我都会收到错误消息,说Uncaught SyntaxError: Unexpected token import
。我正在使用 babel,但没有使用 webpack,因为它是非常简单的纯 JavaScript 项目。
我该如何修复它? 我的index.html文件:
<!DOCTYPE html>
<html lang='en'>
<head>
<link rel="stylesheet" type="text/css" href="css/stylesheet.css" />
<script src='../libs/three.js'></script>
<script src='../libs/three.min.js'></script>
<script src='../libs/PointerLockControls.js'></script>
<script src="../libs/lodash.js"></script>
</head>
<body>
<div id='container'></div>
<div id="blocker">
<div id="instructions">
<strong>Click to look!</strong>
</div>
</div>
<script type="text/javascript" src="js/main.js"></script>
</body>
</html>
package.json
{
"dependencies": {
"babel": "^6.23.0",
"babel-cli": "^6.26.0"
},
"devDependencies": {
"babel-plugin-lodash": "^3.3.2",
"babel-preset-env": "^1.6.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"lodash": "^4.17.4"
}
}
.babelrc
{
"presets": ["es2015", "stage-2"]
}
如果我尝试从另一个文件将任何内容导入到
main.js
- lodash 甚至我自己的函数中,也会引发同样的错误。您可能会注意到 lodash 位于 package.json 和 ../lib/lodash.js
中。为了解决这个问题,我用yarn安装了一次,然后第二次手动下载了代码。
AFAIK,您只能在服务器上的 Node.js 脚本中执行
import
操作。但在前端,您应该像以前一样包含它们(<script src="..."></script>
)并开始使用它,而无需任何 import
语句。
如果有人将打包程序与导入一起使用:在我的情况下,此错误是由于缺失引起的:
<meta charset="UTF-8">
在我的 HTML 文件中。