es6-module-loader无法找到没有.js扩展名的模块

用户名

我正在将使用的应用程序System.import从traceur移植到Babel。我的简化HTML如下所示:

<script src="../node_modules/babel-core/browser.js"></script>
<script src="../node_modules/es6-module-loader/dist/es6-module-loader-dev.js"></script>
<script> 
    System.transpiler = 'babel';
    System.import('./css');
</script>

这给了我

Uncaught (in promise) File not found: http://connect:8000/sam/css
    Error loading http://connect:8000/sam/css

如果改为./css.js使用.js扩展名指定,则可以使用。但是,然后css.js在表格的内部和整个系统中导入

import 'foo';

失败。

看来es6-module-loader需要.js扩展。我注意到es6-module-loader中涉及演示页面的一些提交,该提交为.js扩展名称添加了扩展名。此页面上,我还看到了

默认情况下,也不再添加.js扩展名。这些更改是向新规范工作过渡的一部分。有关更多信息,请参见whatwg / loader#52上的讨论。如果需要,可以使用自定义钩子轻松添加回.js扩展名。

但是我不知道指的是哪种钩子,或如何编写它。

我知道,在浏览器中动态加载和转译可能不是理想的选择,也不是一种可靠的生产方法。但是,这个特定的应用程序会动态加载单个ES6文件,我暂时需要坚持这种方式。

我的问题是:es6-module-loader是否需要.js扩展名,或者有没有办法告诉它.js默认情况下查找文件?

用户名

locate根据https://github.com/ModuleLoader/es6-module-loader/blob/master/docs/loader-extensions.md上的文档,我最终放弃了这个问题

var systemLocate = System.locate;                                                                  
System.locate = function(load) {                                                                   
  var System = this; // its good to ensure exact instance-binding                                  
  return Promise.resolve(systemLocate.call(this, load)).then(function(address) {                   
    return address + '.js';                                                                        
  });                                                                                              
}                                                                                                  

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅在开发模块加载程序版本中提供ES6转换,es6-module-loader错误

在Typescript编译过程中在相对导入语句上附加.js扩展名(ES6模块)

ES6模块的module.exports等价于什么?

javascript导入如何找到没有扩展名的模块?

Node.js无法导入ES6模块

使用没有Transpiler / Bundler步骤的ES6模块

将文件扩展名从js更改为ts后,ionic无法再找到模块

在ES6 Node.js中导入'.json'扩展名会引发错误

ES6导入/导出是否需要“ .js”扩展名?

ES6中是否有针对ES5`module.exports = require('./ inner.js')`的一线类比?

如何导入已在html内<script type =“ module”>标记中定义的es6模块?

无法使用Webpack加载ES6模块

无法在React组件中导入ES6模块

babel-jest无法在模块内处理ES6

列出 ES6 模块语法中的所有导出

如何有条件导入ES6模块?

带有Jest ES6模块的Javascript测试单元

Node.js和ES6中的module.exports与export默认

webpack.config.js无法识别ES6语法

如何在没有 module.exports 的情况下在 Javascript 中导出 ES6 类

具有require的Node.js ES6类

使用 Webpack 捆绑 ES6 类。有没有办法提升扩展类?

不提供文件扩展名就无法导入TypeScript模块

在JS,ES6的Factory中,如果属性和参数不同,则方法无法找到它

找不到模块:错误:无法解析“ core-js / es6”

节点v13 / Jest / ES6 —对没有babel或esm的模块的本机支持

在没有babel的情况下从ES6模块中存入功能

ES6模块范围

ES6模块短路