我在我的 Node 项目中使用这个 npm 模块 ( module-alias)
https://www.npmjs.com/package/module-alias。
要使用这个包,你必须在package.json文件中设置路径别名。
但是,使用此软件包有一个缺点,即智能感知不再起作用。
我的问题是如何使用这些路径别名启用智能感知?
我正在使用v3.6.4带有以下tsconfig.json代码片段的打字稿:
"compilerOptions": {
"moduleResolution": "node",
"baseUrl": "./src",
"paths": {
"@config/*": ["config/*"],
"@config": ["config"],
}
}
Run Code Online (Sandbox Code Playgroud)
和 package.json 中的模块别名:
"_moduleAliases": {
"@config": "dist/config"
}
Run Code Online (Sandbox Code Playgroud)
我有以下文件夹结构:
src
|-config
|-index.ts
|-app
|index.ts
|logic.ts
|-dist
Run Code Online (Sandbox Code Playgroud)
现在在 app/index.ts 中,如果我这样做:
import 'module-alias/register';
import config from '@config';
Run Code Online (Sandbox Code Playgroud)
我的npm start命令是:
"start": "node -r ts-node/register ./src/app/index.ts",
Run Code Online (Sandbox Code Playgroud)
tsc会编译成功但是npm start会报错:
Error: Cannot find module '@config' in src/app/logic.ts
Run Code Online (Sandbox Code Playgroud)
解决这个问题的唯一方法就是添加
import 'module-alias/register';
Run Code Online (Sandbox Code Playgroud)
在src/app/logic.ts
似乎我必须import 'module-alias/register'在我做的每个文件中添加别名?这是配置这个的方法吗?