我看到了一些关于这个问题的问题,没有一个不起作用--我有一个nodejs项目和类型记录。我不喜欢使用相对路径,当我在tsconfig中设置路径时,会得到以下错误:
找不到模块“@app/controllers/main”
// main.ts
export const fullName = "xxxx";
...
// app.ts
import { fullName } from '@app/controllers/main'
...
这是我的项目的结构:
-node_modules
-src
----controllers
---------------main.ts
----app.ts
-package.json
-tsconfig.json
tsconfig:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"baseUrl": ".",
"paths": {
"@app/*": ["src/*"]
},
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
我的问题在哪里?
提前谢谢。
发布于 2020-09-04 17:02:49
不幸的是(我不知道为什么),类型记录编译器目前不支持转换路径。
这是我的解决方案:
我在这项目中使用了该解决方案。
安装devDependencies
tsconfig.json
使用以下选项更新tsconfig.json文件:
{
"compilerOptions": {
/* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
"paths": {
"@app/*": [
"./src/*"
]
},
/* Advanced Options */
"plugins": [
{
"transform": "typescript-transform-paths"
}
],
}
}
构建
对于编译阶段,使用ttsc代替配置文件的tsc。请参阅下面的片段:
npx ttsc --p ./tsconfig.json
自动重装的开发模式
当您处于dev模式时,使用下面的脚本(将其放在package.json中的脚本选项中)自动重新加载项目,其中包含正确的路径。src/app.ts是位于src文件夹下的应用程序的“入口点”。
npx ts-node-dev --prefer-ts true --no-notify -r tsconfig-paths/register --watch src --transpileOnly src/app.ts
PS:使用ts节点开发显着地提高了速度。
发布于 2021-09-24 03:48:15
我稍微调整一下@Carlo Corradini的回答,这是我解决这个问题的方法。
npm i -D ttypescript typescript-transform-paths ts-node tsconfig-paths
。这些包将帮助我们转换路径。
ttypescript> https://www.npmjs.com/package/ttypescriptnpx ttsc -p tsconfig.json
npx ts-node -p tsconfig.json src/app.ts
在ts节点上运行。发布于 2020-09-04 16:43:34
https://stackoverflow.com/questions/63744943
复制相似问题