jspm没有使用--inject加载bundle

时间:2016-01-31 17:25:14

标签: systemjs jspm

周末一直在尝试使用jspm和systemjs。一切都工作正常,除了捆绑jspm优惠。我可以加载单个文件,但jsmp拒绝加载包文件(已优化)。

我正在使用以下方法创建捆绑文件:

jspm bundle lib/login assets/js/1-login.js --inject

这会更新config.js文件,如下所示:

System.config({
    baseURL: "/",
    defaultJSExtensions: true,
    transpiler: "babel",
    babelOptions: {
        "optional": [
            "optimisation.modules.system"
        ]
    },
    paths: {
         "github:*": "jspm_packages/github/*",
         "npm:*": "jspm_packages/npm/*"
    },
    bundles: {
         "1-login.js": [
             "lib/login.js",
             "lib/sample.js"
         ]
    },
    map: {....}
});

LIB / login.js

import * as sample from 'lib/sample'

export function test() {
    sample.testMethod();
}

LIB / sample.js

import $ from 'jquery'

export function testMethod( ) {
    console.log( $('body') );
}

所以,根据jsmp文档:

  

只要请求其中一个模块,就会截获请求,并在继续模块加载之前先动态加载bundle。

我的理解是运行

System.import('lib/login.js');

应该加载bundle(和优化文件),但不是 - 它只是加载实际文件。我在这里错过了什么?作为一个额外的问题,为什么jquery不在捆绑列表中?

1 个答案:

答案 0 :(得分:1)

好吧,弄清楚我哪里出错了。 我将所有生成的资源保留在assets/js中,但在我的config.json中,我没有更改baseUrl来反映这一点。事实上我确实在baseUrl中设置了package.json,这就是为什么jspm没有抛出很多错误的原因。 这与jquery没有加载的原因相同,所以问题解决了:)