Javascript SystemJS:我在提供默认JS扩展时缺少了什么

Javascript SystemJS:我在提供默认JS扩展时缺少了什么,javascript,systemjs,Javascript,Systemjs,不,我不是在构建angular2应用程序。 我正在试用SystemJS,这是我加载模块的脚本 <script type="text/javascript"> System.config({ baseURL: '/scripts/ts', map: { 'deck': 'deck'}, defaultJSExtensions: "js", defaultExtension: "js" }); System.import('deck').then(func

不,我不是在构建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.config({baseURL:'/scripts/ts',,
映射:{'deck':'deck'},defaultJSExtensions:“js”,defaultExtension:“js”});
导入('deck')。然后(函数(){
文件。写入(“已加载…”);
});
以下是我收到的控制台消息

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>
system.src.js:sourcemap:80未捕获(承诺中)错误:意外标识符http://localhost:61968/scripts/ts/deck   装货甲板
评估时()
评估时(system.src.js:sourcemap:2821)
在system.src.js:sourcemap:3620
在dynamicExecute(system.src.js:sourcemap:1144)
在doEvaluate(system.src.js:sourcemap:1091)
在ensureEvaluate(system.src.js:sourcemap:999)
在system.src.js:sourcemap:617
在

看起来systemjs没有使用默认扩展名。如何修复此问题?

defaultJSExtensions
从0.20.0版起不再受支持。您可以在“删除对
defaultJSExtensions
的支持”中看到它

defaultExtension
是选项中定义的包的参数,因此必须定义包才能使用它

考虑到您的
映射也不是必需的,那么您应该使用如下内容:

{ 
  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”

defaultJSExtensions
从0.20.0版起不再受支持。您可以在“删除对
defaultJSExtensions
的支持”中看到它

defaultExtension
是选项中定义的包的参数,因此必须定义包才能使用它

考虑到您的
映射也不是必需的,那么您应该使用如下内容:

{ 
  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”

永远不要使用
文档。编写
。特别是在异步回调中。永远不要使用
文档。编写
。特别是在异步回调中,事实上我自己在阅读文档后已经解决了这个问题,但我知道有人会得到比我添加到问题中更好的答案;我也不知道空包名的事情。谢谢,我自己在读了这些文件之后已经解决了这个问题,但是我知道有人会有比我补充问题更好的答案;我也不知道空包名的事情。非常感谢。