目前我必须使用相对路径导入我的模块:
import {UserService} from "../../../services/user-service";
但是,我宁愿配置SystemJS,以便解决方案从应用程序的根开始,除非模块路径以./
开头,然后我可以这样做(services
位于根目录):
import {UserService} from "services/user-service";
如果我想从当前位置导入文件:
import {Something} from "./something";
我可以使用SystemJS配置第一部分:
System.config({
defaultJSExtensions: true,
transpiler: false,
paths: {
"*": "dist/*",
"services": "dist/services/*",
"models": "dist/models/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
// ...
}
...然而
SystemJS.paths
配置和答案 0 :(得分:0)
一种解决方案是在SystemJs中配置包并为typescript添加路径映射。
您可以通过在services目录下添加index.ts文件来完成此操作,如:
export { UserService } from './user-service';
export { OrderService } from './order-service';
...
将以下内容添加到SystemJs配置中(请参阅:SytemJS config-api):
SystemJS.config({
...
packages: {
"services": {
"main": "index.ts"
}
}
});
将此添加到tsconfig.json(请参阅:Typescript module resolution):
{
"compilerOptions": {
{
...
"moduleResolution": "Node",
"baseUrl": ".",
"paths": {
"services": [ "services" ]
}
}
}
现在您可以导入如下文件:
import { UserService } from 'services';
这将在Visual Studio中提供intellisense,并允许在浏览器中加载模块。