如何鲍尔不同于JSPM?Bower可以提供有关SystemJS通用模块加载器的jspm功能吗?
Answers:
JSPM比Bower更大,更宏大。Bower仅有一个用途-从Web将所需的源文件下载到硬盘。对于作为消费者的您来说,凉亭无能为力。如果要从Bower执行脚本文件,则需要为每个脚本文件创建脚本标签。
虽然jspm不仅是模块下载器。默认情况下,它会下载您提到的systemjs。SystemJS的实现尽可能接近https://whatwg.github.io/loader/。实际上,JSPM的作者是规范过程的非常积极的参与者。如今,借助systemjs,您无需构建ES6(通过在浏览器中编译它们),CommonJS或AMD模块即可加载它们。不仅是ES6模块,而且traceur / babeljs / typescript支持的所有其他ES6功能。取决于运行时选择的编译器jspm init
。SystemJS在node.js和浏览器中均以1:1的方式运行,因此可以轻松完成应用程序的单元测试。
jspm build
当您需要投入生产时,它也可以为您()构建捆绑包。因此,显然jspm(+ systemjs)是一个更强大的工具。因此,根据经验:
要添加到Capaj的答案中:
如果您有一个小项目,还是要使用jspm!这是未来!(谁知道,情况会发生变化,但这是一个不错的选择)。
小型项目使用:
$ jspm install jquery
然后在您的HTML中:
<script src="jspm_packages/system.js"></script><!-- required -->
<script src='config.js'></script><!-- required -->
<script type="module">
System.import('path/to/your/main.js')
</script>
然后在main.js中:
import $ from 'jquery'; // ES6-style import
// do whatever with jQuery here.
您可以使用CommonJS,AMD或ES 6模块格式。JSPM会在文件中自动检测到它们(但是您不能在同一文件中混合和匹配它们)。
var $ = require('jquery'); // CommonJS-style import
// do whatever with jQuery here.
define(['jquery'], function($) { // AMD-style import
// do whatever with jQuery here.
})
var $ = require('jquery');
一个CommonJS风格的导入,而不是AMD风格的导入。