javascript - ES6 模块的路径解析失败

标签 javascript html ecmascript-6 es6-modules

我正在尝试使用 Chrome 60 中的新 ES6 功能(通过启用 Experimental Web Platform)。这是我的项目的结构:

myproject
├── src
|   ├── mymodule.js
|   ├── dep1.js
|   ├── dep2.js
|   ├── dep3.js
├── pages
    ├── example
        ├── example1.html

这是我的页面example1.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>E6 6 experiments</title>
    <script type="module" src="../../src/mymodule.js"></script>
</head>
<body>
</body>
</html>

我设置了Http-Server :

http-server /Users/myuser/myproject

所以我有一个服务器正在运行并提供服务(为了避免与使用 file:/// 协议(protocol)相关的 CORS 问题)。当我运行 Chrome 并在地址栏中键入:localhost://pages/example/example1.html 时,出现此错误:

[Error] GET http://localhost:8080/src/dep1 
[Error] GET http://localhost:8080/src/dep2 
[Error] GET http://localhost:8080/src/dep3 

依赖未加载

Developer Tools 窗口显示 mymodule.js 已正确加载,但其依赖项未加载,路径不正确。文件 mymodule.js 开头有这 3 行:

import * as dep1 from "./dep1";
import * as dep2 from "./dep2";
import * as dep3 from "./dep3";

请记住 dep1.jsdep2.jsdep3.jsmymodule.js< 位于同一位置.

我认为 mymodule.js 可以很好地加载资源,否则如果它取决于服务器拥有根目录的位置,这就变得棘手了。我在这里做错了什么?

最佳答案

在日志中可以看到,相对路径解析正确,文件夹是预期的。问题是您的文件名为 dep1.js 而不是 dep1(等等)。添加文件扩展名:

import * as dep1 from "./dep1.js";
import * as dep2 from "./dep2.js";
import * as dep3 from "./dep3.js";

或者,您可以将服务器配置为自动解决这些问题。

关于javascript - ES6 模块的路径解析失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45803208/

相关文章:

javascript - 如何使用 jsfiddle 在线服务托管图像

html - 如何应用叠加此图像?

javascript - 在没有 jQuery AJAX 的情况下在 React 中提交表单

javascript - React.createClass 与 ES6 箭头函数

javascript - 在 Sails.js 中使用 Waterline ORM 时出现 ER_BAD_FIELD_ERROR

javascript - 在准备好的文档上附加 DDL 不会让它在列表项上有 CSS 并且不会使它们可排序

javascript - 使用 PhoneGap 下载 PDF 以供离线查看?

html - 需要帮助使 div 垂直居中

javascript - Soundcloud 在 Javascript 中保持连接

javascript - JS中extends class旁边的<>有什么作用?