首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(如何)我可以在babel中使用System.import和require.js?

(如何)我可以在babel中使用System.import和require.js?
EN

Stack Overflow用户
提问于 2015-12-28 23:17:57
回答 2查看 807关注 0票数 1

我正在使用新的ES6功能和Babel。我正在通过require.js (transpiling )成功地使用模块导出/导入功能,但是实验模块加载程序不想工作。下面是我的代码和配置:

front-app/tst.js提取液

代码语言:javascript
复制
import {tstimp as functocall} from "front-app/tstimp.js";

...

/**
 * LOADING MODULES DYNAMICALLY
 */
System.import('front-app/tst_dyn_mod')
    .then(some_module => {
        console('using the module!');
        some_module.sayHello();
    })
    .catch(error => {
        console.log('error!');
        console.log(error);
    });

我的.babelrc看起来是这样的:

代码语言:javascript
复制
{
  "presets": ["es2015", "react"],
  "plugins": ["transform-es2015-modules-amd"]
}

我导入的脚本是这样的,按顺序排列:

代码语言:javascript
复制
<html>
    <head>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
        <script src="node_modules/babel-polyfill/dist/polyfill.min.js"></script>
        <script data-main="front-app/tst" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.8/require.min.js"></script>
        <script src="node_modules/es6-module-loader/dist/es6-module-loader.js"></script>
    </head>
    <body></body>
</html>

不幸的是,通过使用firefox,我得到了以下错误:

代码语言:javascript
复制
error! tst.js:695:9
Error: a is undefined
    Error loading http://localhost/es6r1/front-app/tst_dyn_mod

那是什么a?我是不是遗漏了什么?请记住,我的代码被转换成AMD,但是System应该留在转错的代码中(而且它就在那里)。填充应该做肮脏的工作,对吧?

EN

回答 2

Stack Overflow用户

发布于 2016-02-29 22:12:35

由于插件https://www.npmjs.com/package/babel-plugin-system-import (npm install babel-plugin-system-import-transformer),我成功地在Babel 6上使用了一个轻巧的不同配置(babel-node &从而通用的配置)。这是我的.babelrc的节选

代码语言:javascript
复制
…
"plugins": [
  "system-import-transformer",
  {
    "modules": "common"
  }
]
…

设置amd,而不是像文档中指出的那样,应该对您有好处。

只有这个小插件的限制,您应该得到一个简单的字符串模块名,比如System.import("plainString"),而不是计算的(也不是字符串与+的连接,也不是新的ES6 模板文字,也不是变量名)。它似乎与那一行代码有关。

如果我可以的话,我会努力争取解决这个限制的。

票数 0
EN

Stack Overflow用户

发布于 2017-10-13 18:40:46

只是对此进行了更新,https://github.com/thgreasi/babel-plugin-system-import-transformer支持非字符串参数。只需确保不要使用更新的别名包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34502198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档