Javascript 使用SystemJS/jspm在生产中加载异步es5模块
我希望能够使用Javascript 使用SystemJS/jspm在生产中加载异步es5模块,javascript,systemjs,jspm,Javascript,Systemjs,Jspm,我希望能够使用System.import()异步加载依赖项,但不必在生产运行时将ES6传输到ES5。我希望这些模块被传输到单独的ES5模块中,这些模块只在需要时才被获取。我不想让它们成为主捆绑包的一部分 开发工作流程 这些模块在我的生产构建期间有效地加载,这实际上令人担忧,因为我不想包含任何允许透明化的依赖项 我有一个工作流程,使用jspmbundle和jspmunbundle在开发和生产配置之间切换。在我的开发环境中,我包括以下脚本: <script src="jspm_packages
System.import()
异步加载依赖项,但不必在生产运行时将ES6传输到ES5。我希望这些模块被传输到单独的ES5模块中,这些模块只在需要时才被获取。我不想让它们成为主捆绑包的一部分
开发工作流程
这些模块在我的生产构建期间有效地加载,这实际上令人担忧,因为我不想包含任何允许透明化的依赖项
我有一个工作流程,使用jspmbundle
和jspmunbundle
在开发和生产配置之间切换。在我的开发环境中,我包括以下脚本:
<script src="jspm_packages/system.js"></script>
<script src="config.js"></script>
<script>
System.import('src/main');
</script>
在生产过程中,当我尝试使用System.import()
异步加载模块时,该模块加载良好,这意味着在生产过程中浏览器中正在进行传输
问题
System.import()
异步并单独获取它们system.js
有传输能力吗import * as YM from 'YourModuleFile';
这将使YM可以在整个文件中访问
或者,如果您想在按钮上加载YM,请单击
element.onclick = function() {
System.import('YourModuleFile').then(function(YM) {
// YM accessible here
})
}
因此,重要的是在文件/模块中很好地组织代码
然后,您可以使用npm任务运行程序(如gulp)来压缩文件等
当然,您需要在systemjs.config.js文件中输入一些映射,例如
'YourModuleFile': '/path/to/your/module/file.js'
以便SystemJS能够找到它
答复2
JSPM有tranpile功能,我不确定SystemJS是否有
确保JSPM(或您选择的工具)传输您的文件。然后将SystemJS指向传输的文件
'YourModuleFile': '/path/to/your/module/file.js'