标签: module-alias

模块别名包的智能感知

我在我的 Node 项目中使用这个 npm 模块 ( module-alias) https://www.npmjs.com/package/module-alias

要使用这个包,你必须在package.json文件中设置路径别名。

包.json

但是,使用此软件包有一个缺点,即智能感知不再起作用。

我的问题是如何使用这些路径别名启用智能感知?

intellisense node.js npm drupal-path-aliases module-alias

8
推荐指数
1
解决办法
697
查看次数

打字稿路径别名需要在每个文件上使用 module-alias/register

我正在使用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'在我做的每个文件中添加别名?这是配置这个的方法吗?

javascript typescript module-alias

6
推荐指数
1
解决办法
1万
查看次数