Sk_*_*oat 5 javascript node.js express ecmascript-6 es6-modules
我正在开发一个快速应用程序,我正在尝试执行以下操作,但我一遍又一遍地遇到相同的错误 - “GET http://localhost:3000/javascript/module2 net::ERR_ABORTED 404 (Not Found)”
有人可以向我指出我犯了什么错误并指出我正确的方向吗?下面是我的代码 -
模块1.js
import theFunc from "./module2";
console.log("In module 1");
theFunc();
Run Code Online (Sandbox Code Playgroud)
模块2.js
export default function theFunc() {
console.log("from module 2");
}
Run Code Online (Sandbox Code Playgroud)
索引.html
<html>
<body>
Should show the result in console.
<script type="module" src="./javascript/module1.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
提前致谢!:)
log*_*yth 12
该消息指出了这个问题,但它仍然很容易被遗漏。
GET http://localhost:3000/javascript/module2 net::ERR_ABORTED 404
Run Code Online (Sandbox Code Playgroud)
是问题,因为而不是
http://localhost:3000/javascript/module2
Run Code Online (Sandbox Code Playgroud)
网址实际上是
http://localhost:3000/javascript/module2.js
Run Code Online (Sandbox Code Playgroud)
带.js扩展名。
问题是
import theFunc from "./module2";
Run Code Online (Sandbox Code Playgroud)
应该
import theFunc from "./module2.js";
Run Code Online (Sandbox Code Playgroud)
import和export语句属于ES6,因此你需要使用像Babel这样的转译器。第二个选项是使用requireES5 中的等效项:
首先将此脚本添加到 html 的头部:
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
</head>
<body>
Run Code Online (Sandbox Code Playgroud)
更改这些行:
import theFunc from "./module2";
Run Code Online (Sandbox Code Playgroud)
变成
var theFunc = require("./module2");
Run Code Online (Sandbox Code Playgroud)
还有这个:
export default function theFunc() {
console.log("from module 2");
}
Run Code Online (Sandbox Code Playgroud)
变成:
function theFunc() {
console.log("from module 2");
}
module.exports = theFunc;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2721 次 |
| 最近记录: |