我正在运行 VS Code,目前正在尝试在我的打字稿项目上设置一些别名。
我的开发设置基于 nodemon 和 ts-node,代码被编译到 dist 文件夹。
到目前为止,我成功让 Typescript Hero 使用别名管理导入:
到目前为止,我的文件夹结构是:
.
└─┬ src
├──modules
├────Category
├────Ressource
├──shared
├────debug
// tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"pretty": true,
"sourceMap": true,
"target": "es6",
"outDir": "./dist",
"baseUrl": "./src",
"paths": {
"@shared/*": [
"shared/*"
],
"@modules/*": [
"modules/*"
]
},
"resolveJsonModule": true,
"esModuleInterop": true
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules",
"**/*.spec.ts",
"**/*.test.ts",
]
}
这是第一个失败的别名导入。
//Server.ts file
import Print from '@shared/debug/Print.class';
import App from './App';
const MyApp: App = new App();
MyApp.ExpressApp.listen(MyApp.Config.ExpressPort, () => {
Print.Log('Express server listening on port ' + MyApp.Config.ExpressPort);
});
但是,我收到一个错误: “cross-env NODE_ENV=development nodemon ts-node ./src/server.ts”上的“找不到模块'@shared/debug/Print.class' ”。
这就是我的立场。
现在,我已经阅读了一些关于 SO 的问答,似乎即使我设法使别名在 dev 中工作,它也会在生产中失败,因为我从 Typescript src 文件夹运行并且我的可交付成果内置于 dist ? 如果是这样,有什么办法可以补救吗?非常感谢