在 VS 代码中:[ts] 找不到模块 '@src/xxx'

Posted

技术标签:

【中文标题】在 VS 代码中:[ts] 找不到模块 \'@src/xxx\'【英文标题】:In VS Code: [ts] Cannot find module '@src/xxx'在 VS 代码中:[ts] 找不到模块 '@src/xxx' 【发布时间】:2018-12-21 12:13:54 【问题描述】:

所以,我正在使用这个tsconfig.json


  "compilerOptions": 
    "baseUrl": ".",
    "declaration": true,
    "module": "ES6",
    "moduleResolution": "node",
    "outDir": "./lib/",
    "paths": 
      "@src/*": ["src/*"]
    ,
    "preserveConstEnums": true,
    "removeComments": true,
    "sourceMap": true,
    "target": "ES6"
  ,
  "include": [
    "global.d.ts",
    "src/**/*.ts"
  ]

在哪里可以看到别名 @src 是为我的代码定义的。

tsc/webpack 构建所有内容都没有问题,但是在 VS Code 中编辑时,当我将某些内容导入为时,我无法摆脱此错误消息

import  xxx  from '@src/xxx';

有同样问题的人吗?对我来说,看到这个很奇怪,因为如果它正确编译/构建(来自 tsc webpack),这意味着配置是正确的。那么为什么 VS Code 会显示这个错误信息呢?这很烦人,但我想解决它。

tsconfig.json 文件也使用标准名称(tsc 没有自定义 -p 选项)所以,VS Code 应该能够自动读取它,对吧?还是需要对 IDE 进行任何额外的配置?

【问题讨论】:

你搞清楚了吗?我也遇到了同样的问题。 遗憾的是没有。我现在不使用别名:( 感谢您的回复。我想知道他们是否修复了 VS Code?我发现我需要在 typescript 中定义 *.gif。之后它对我来说很好。有别名。我的另一个问题有我的完整配置和我的解决方案,以防它帮助你:***.com/questions/54880363/… 【参考方案1】:

我有同样的问题。在我运行 Cmd+Shift+P > Typescript: Restart TS Server 的情况下,技巧和错误消息消失了

【讨论】:

哦,对不起,这并没有解决它...但是自从我上次修复它以来,让我发布对我有用的答案:) 当您在深层嵌套文件结构中创建新文件并在其上使用 typescript 别名时,会出现此问题。谢谢,不是最好的解决方案,但它有效) 天啊...我只花了 3 个小时在这上面,直到你救了我。【参考方案2】:

很久之后(我已经忘记了这个问题......)我让它工作了(不知道当原始问题发布时是否可能)。

我会在这里写下我所做的,以防它可以帮助其他人:)

基本上,我需要以下内容:

1。在tsconfig.json 中定义路径

这是在原始问题中,但也包括在此处以完成:


  "compilerOptions": 
    "baseUrl": ".",
    "paths": 
      "@src": ["src"],
      "@src/*": ["src/*"],
    

2。安装tsconfig-paths

npm i -D tsconfig-paths

如果您正在使用 webpack,请添加 tsconfig-paths-webpack-plugin 并将插件添加到您的 webpack.config.js 中,如下所示:

const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');

module.exports = 
  // ...
  resolve: 
    extensions: ['.ts', '.tsx', '.js', '.json'],
    plugins: [new TsconfigPathsPlugin( configFile: 'tsconfig.json' )],
  ,
;

如果您使用的是 NextJS,插件的配置在next.config.js 中如下所示:

const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');

module.exports = 
  webpack: (config) => 
    config.resolve.plugins.push(
      new TsconfigPathsPlugin( configFile: 'tsconfig.json' )
    );

    return config;
  ,
;


我不确定是否只是改进了 VS Code(因此我的问题在我发布问题后的一年半内自动修复),但这是我现在使用的并且是工作正常。希望对其他人也有帮助:)

【讨论】:

在我的情况下不起作用,安装了软件包,但是在运行我的 nextjs 应用程序时它说“找不到模块 'tsconfig-paths-webpack-plugin'”.. 我错过了什么?跨度> 你也必须安装它:npm install --save-dev tsconfig-paths-webpack-plugin【参考方案3】:

现在应该开箱即用。顺便说一句,确保 jsconfig/tsconfig 中的包含指向正确的路径,即

// example:
"include": [
  "./**/*.ts",
  "./**/*.tsx"
],

【讨论】:

是的,3 年多来情况发生了很大变化;)

以上是关于在 VS 代码中:[ts] 找不到模块 '@src/xxx'的主要内容,如果未能解决你的问题,请参考以下文章

Typescript、index.d.ts 和 webpack:找不到模块错误

在 src/app 外部定义的模块显示错误“找不到模块:错误:无法解析 './' in”

找不到在 tsconfig `paths` 中定义的模块

Typescript + VS Code:找不到模块“myimage.png”

NRWL NX 导入库错误 TS2307:找不到模块“@eduboard/interfaces”

测试套件无法运行 - 找不到模块“打字稿”