SystemJS:我在提供默认 JS 扩展时缺少什么
SystemJS: What am I missing in providing the default JS Extension
不,我不是在构建 angular2 应用程序。
我正在试用 SystemJS,这是我加载模块的脚本
<script type="text/javascript">
System.config({ baseURL: '/scripts/ts',
map: { 'deck': 'deck'}, defaultJSExtensions: "js", defaultExtension: "js" });
System.import('deck').then(function () {
document.write("Loaded...");
});
</script>
这是我收到的控制台消息。
system.src.js:sourcemap:80 Uncaught (in promise) Error: Unexpected identifier Evaluating http://localhost:61968/scripts/ts/deck Loading deck
at eval (<anonymous>)
at evaluate (system.src.js:sourcemap:2821)
at system.src.js:sourcemap:3620
at dynamicExecute (system.src.js:sourcemap:1144)
at doEvaluate (system.src.js:sourcemap:1091)
at ensureEvaluate (system.src.js:sourcemap:999)
at system.src.js:sourcemap:617
at <anonymous>
看起来 systemjs 没有选择默认扩展。我该如何解决这个问题?
defaultJSExtensions
从 0.20.0 版本开始不再受支持。你可以在release notes for 0.20.0-alpha1中看到它:"Removes support for defaultJSExtensions
."
defaultExtension
是在 packages
选项中定义的包的参数,因此您必须定义一个包才能使用它。
考虑到你的map
也没有必要,那么你应该使用这样的东西:
{
baseURL: '/scripts/ts',
packages: {
// Yep, this defines a package with an empty name. This will
// encompass everything not encompassed by a more specific package
// name.
"": {
defaultExtension: "js"
},
},
}
实际上,这也行得通:
{
baseURL: '/scripts/ts',
packages: {
"": {},
},
}
原因如下:添加扩展没有全局默认设置。但是,如果您定义了一个包但没有为其指定 defaultExtension
,则该包会自动获得 defaultExtension
的默认值,即 "js"
.
不,我不是在构建 angular2 应用程序。 我正在试用 SystemJS,这是我加载模块的脚本
<script type="text/javascript">
System.config({ baseURL: '/scripts/ts',
map: { 'deck': 'deck'}, defaultJSExtensions: "js", defaultExtension: "js" });
System.import('deck').then(function () {
document.write("Loaded...");
});
</script>
这是我收到的控制台消息。
system.src.js:sourcemap:80 Uncaught (in promise) Error: Unexpected identifier Evaluating http://localhost:61968/scripts/ts/deck Loading deck
at eval (<anonymous>)
at evaluate (system.src.js:sourcemap:2821)
at system.src.js:sourcemap:3620
at dynamicExecute (system.src.js:sourcemap:1144)
at doEvaluate (system.src.js:sourcemap:1091)
at ensureEvaluate (system.src.js:sourcemap:999)
at system.src.js:sourcemap:617
at <anonymous>
看起来 systemjs 没有选择默认扩展。我该如何解决这个问题?
defaultJSExtensions
从 0.20.0 版本开始不再受支持。你可以在release notes for 0.20.0-alpha1中看到它:"Removes support for defaultJSExtensions
."
defaultExtension
是在 packages
选项中定义的包的参数,因此您必须定义一个包才能使用它。
考虑到你的map
也没有必要,那么你应该使用这样的东西:
{
baseURL: '/scripts/ts',
packages: {
// Yep, this defines a package with an empty name. This will
// encompass everything not encompassed by a more specific package
// name.
"": {
defaultExtension: "js"
},
},
}
实际上,这也行得通:
{
baseURL: '/scripts/ts',
packages: {
"": {},
},
}
原因如下:添加扩展没有全局默认设置。但是,如果您定义了一个包但没有为其指定 defaultExtension
,则该包会自动获得 defaultExtension
的默认值,即 "js"
.