我正在努力找出一个很好的生产工作流,它能很好地处理开发工作流程。需要从构建中排除1MB的外部库,然后使用CDN单独托管它们。所以我们有这个:
<script src="jspm_packages/system.js"></script>
<script src="config.js"></script>
<script src="build.js"></script>
<script>
System.import('app/main.js');
</script>这很好,main.js中的任何东西都会被忽略,因为它已经包含在build.js中了。虽然我猜这意味着,当是时候回到开发热点建筑,我们必须删除build.js之前?
因此,现在我想分离生产的外部依赖关系:
builder.buildStatic('app/main.js', 'build.js', {
externals: ['jquery'],
globalName: 'App',
globalDeps: {
'jquery': 'jQuery'
}
});当我们这样做时,我们需要添加以下一行:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2 jquery.min.js"></script>
<script src="jspm_packages/system.js"></script>
<script src="config.js"></script>
<script src="build.js"></script>
<script>
System.import('app/main.js');
</script>这意味着当我们切换到开发构建时,jQuery将双绑定到main.js中?然后是来自SystemJS的片段
System.config({
bundles: {
'build/core': ['jquery']
}
});
System.import('app/main.js');不知道如何使用它,因为现在我们不会使用CDN来托管jQuery。所以对我来说,这感觉就像一个接22球。JSPM很棒,因为它为您提供了包管理,但是要在生产中使用包,则需要外部的包。因此,如果我们必须在页面中添加脚本标记,那么这难道不符合JSPM的初衷吗?
对于如何制作一个好的、简单的开发/生产工作流,有什么想法吗?当我们想要在两者之间切换时,我们不需要更改代码?我们想要的是:
$ npm运行生产 $ npm运行开发
这一点,不需要在运行这两个页面之前更改页面中的任何类型的HTML。我在不同的SystemJS和JSPM工作流上找了好几个小时,似乎找不到一个能解决所有问题的工作流程。
SystemJS是否在任何地方被用于生产,还是仍然被认为是一种实验技术?我已经看到了一个新的、即将到来的HTTP/2标准,它将动态地加载模块,所以这是否意味着它将切换到SystemJS,还是被抛在脑后?
发布于 2016-07-01 01:13:44
我以前没有使用过systemJS来捆绑东西,但是为jquery映射CDN有用吗?也就是说,您可以使用CDN对角和rxjs通过:
map: {
...
'@angular': 'https://npmcdn.com/@angular',
'rxjs': 'https://npmcdn.com/rxjs@5.0.0-beta.6',
'jquery': 'http://jquery.cdn'
}像这样的东西能帮你解决这个问题吗?我认为这意味着您将不能使用jquery作为全局的,并且需要导入它,但是迁移到这样的工作流可能会有帮助吗?
https://stackoverflow.com/questions/37999495
复制相似问题