javascript - ES6 + SystemJs - 为什么我必须使用 .js 扩展名来导入 es6 模块?

标签 javascript ecmascript-6 systemjs es6-module-loader traceur

为什么我必须使用 .js 扩展名才能通过 systemjs 导入 es6 模块?例如:

import { multiplier } from "adder.js"; // ok
import { double, square } from 'modules'; // error

var timesTwo = multiplier(2);

console.log(timesTwo(4));

错误信息:

GET http://local-host/projects/es6/src/modules 404 (Not Found)Z @ system.js:4(anonymous function) @ system.js:4(anonymous function) @ system.js:4(anonymous function) @ system.js:5(anonymous function) @ system.js:5(anonymous function) @ system.js:5(anonymous function) @ system.js:5(anonymous function) @ system.js:5(anonymous function) @ system.js:5(anonymous function) @ system.js:4 system.js:4 Uncaught (in promise) Error: Error: XHR error (404 Not Found) loading http://local-host/projects/es6/src/modules(…)

这是我的带有 system.js 的 HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ES2015 Module Example</title>
</head>
<body>
    <script src="lib/system.js"></script>
    <script>
        System.config({
            "baseURL": "src",
            // 'plugin-babel' or 'traceur' or 'typescript'
            transpiler: 'plugin-babel',
            // or traceurOptions or typescriptOptions
            babelOptions: {

            },
            map: {
                'traceur': './lib/traceur.min.js',
                'plugin-babel': './lib/plugin-babel/plugin-babel.js',
                'systemjs-babel-build': './lib/plugin-babel/systemjs-babel-browser.js'
            }
          }
        });
        System.import("app.js");
    </script>
</body>
</html>

有什么想法我错过了什么吗?

最佳答案

因为系统js不会将.js附加到模块名称中。一些模块加载器/ bundler (Node、webpack 等)正在执行此操作,但没有标准指定必须执行此操作。

有一个configuration option为此,但它将被弃用。

关于javascript - ES6 + SystemJs - 为什么我必须使用 .js 扩展名来导入 es6 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37441256/

相关文章:

eclipse - 有没有办法在 Eclipse IDE 中开发 react ?

javascript - ES6箭头函数TypeError : Cannot read property '1' of null with multiple params using Karma

javascript - ES2015+ 有效地将对象数组转换为以对象数组作为值的分组 HashMap 的方法

javascript - 有关 Javascript 范围的帮助

javascript - 如何在 emscripten 中迭代 Box2D 中的实体列表?

javascript - AJAX 请求保存到数据库但警报失败

javascript - TypeScript 和 SystemJS : angular ui router module not registered in transpiled js

javascript - react 路由器 : execute custom function on every <Link> navigation

angular - SystemJS (angular2.0) : Loading separate files vs minimize one big JS?

typescript - 使用 System.js 在 TypeScript 中加载模块