我可以在没有转换器的情况下使用JSPM吗?

时间:2015-09-08 21:16:57

标签: jspm

我使用的是jspm 0.16.2。

我正在使用此test project

当我将Transpiler设置为none时:transpiler: "none"

我收到错误XHR error (404 Not Found) loading http://localhost:53404/none.js

如果我将转换器设置为'test',它会给出相同的错误,除了它查找test.js

这是jspm的错误吗?

我想不使用transpiler,但使用system.js加载AMD模块。

当我从config.js中删除了transpiler选项时,它会尝试加载Traceur。

我想在运行时没有运行Transpiler。

1 个答案:

答案 0 :(得分:8)

我们不清楚你要做什么。如果您使用ES2015功能(例如ES2015模块,let等),那么您需要转换器。如果您编写的代码没有ES2015功能,则不会加载任何转换器。您可以通过将ES5代码放入main.js并检查调试器的“网络”选项卡来进行检查。

您在browser.js中为transpiler输入的字符串实际上是转换文件本身。在System.config的情况下,它会映射到"babel"(来自npm:babel-core@5.8.3字段),当与map字段结合时,会引用path,然后在jspm_packages/npm/babel-core@5.8.3中目录,文件.jspm.json将入口点指向browser.js,这是客户端转换器文件本身。

无论你设置transpiler的是什么字符串,jspm都会将System设置为指向它(如果你没有映射它,路径将只是baseURL)和拿它。当然,对于任何字符串,例如nonetest,它都不存在。如果您没有指定任何内容,则默认为traceur

如果您尝试避免客户端转换,您可以选择通过jspm bundle转发服务器端。

对于仅使用ES5和AMD而不进行转换的代码,请检查上述repo的no-transpile分支。请注意,即使browser.js仍设置为transpile,也不会下载"babel"