jspm 不使用 --inject 加载包

jspm not loading bundles with --inject

周末一直在试验 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 文档:

As soon as one of these modules is requested, the request is intercepted and the bundle is loaded dynamically first, before continuing with the module load.

据我了解运行

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

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

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