Systemjs的请求不会将扩展 .js 添加到网址。
这些是我的TypeScript类
customer.ts
import {Address} from "./Address";
export class Customer {
private _customerName: string = "";
public CustomerAddress: Address = new Address();
public set CustomerName(value: string) {
if (value.length == 0) {
throw "Customer Name is required";
}
this._customerName = value;
}
public get CustomerName() {
return this._customerName;
}
Validate(): boolean {
return this._customerName != '';
}
}
address.ts
export class Address {
public Street1: string = "";
}
使用以下Systemjs初始化代码
System.config({
defaultExtension: 'js',
});
System.import("Customer.js").then(function (exports) {
var cust = new exports.Customer();
});
Customer.js已成功加载,但Address.js未加载。
Address.js的GET请求不包含 .js 扩展名 在控制台中产生以下请求
GET http://localhost:65401/Address 404 (Not Found).
我尝试将customer.ts中的以下代码更新为以下
import {Address} from "./Address.js";
但它在语法上是错误的,它在VS2013中显示错误。
如何强制Systemjs将扩展" .js" 添加到GET请求。
谢谢
答案 0 :(得分:1)
defaultExtension
关键字不是顶级配置选项。它需要在packages
指令下,请参阅:https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#packages
这就是为什么它被忽略而且SystemJS没有附加扩展名。您可以定义一个“全局”包,这可能是确保扩展始终附加到每个导入路径的最简单方法:
SystemJS.config({
packages: {
'.': {
defaultExtension: 'js'
}
}
});