在没有 Traceur 的情况下在生产中使用 SystemJS
Posted
技术标签:
【中文标题】在没有 Traceur 的情况下在生产中使用 SystemJS【英文标题】:Using SystemJS in production without Traceur 【发布时间】:2016-06-28 01:20:25 【问题描述】:我想根据需要使用 SystemJS 动态导入 AMD 模块以及 System.import()
模块。当然,我可以包含 <script src="system.js"></script>
,但我收到了一个错误,即 Traceur 未定义。我故意不想要包含 Traceur 或任何其他依赖项,以将请求保持在最低限度。是否有允许在一个半轻量级脚本中导入 AMD 和 System.import
调用的 SystemJS 版本?
【问题讨论】:
答案在哪里? Chrome 内置了大部分 es6,除了那个讨厌的 import 语句。 我在设置 System.transpiler? 【参考方案1】:jspm
中的 transpiler
选项和(假设它刚刚通过)systemjs
可以设置为 false
,尽管目前[1] SystemJS 对 Traceur 有硬编码依赖检测到 ES6 格式的模块时的转译器。
我提到这一点的原因是,我相信您的问题不是由正在使用的 AMD 模块引起的,而是您使用的模块(或它们使用的模块)中的某些依赖关系实际上是,以 ES6 格式编写。检查您的浏览器控制台以查看显示的错误消息。
[1]Link to SystemJS sourcecode which handles ES6 module format.
【讨论】:
【参考方案2】:来自documentation:
转译器
类型:String
默认值:traceur
表示必须解析为 Traceur、Babel 或 TypeScript 的 System.import 的模块名称。
您需要定义以上三个之一,它不可能禁用此功能。
【讨论】:
可以设置transpiler to false,这仍然不允许通过System.import()
调用导入模块。
谢谢。我已设置为 false,并且不再要求 traceur。 :)以上是关于在没有 Traceur 的情况下在生产中使用 SystemJS的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot 在生产中没有找到错误模板,尽管它在 Netbeans 中找到了它