当前位置: 首页 > 面试题库 >

打字稿找不到在“路径”设置中定义的模块

薛博赡
2023-03-14
问题内容

在我的React项目中,我在webpack配置中定义了一个模块别名。我想开始移至Typescript。

//我尽力简化设置

这是我tsconfig.json在根文件夹中:

{
  "compilerOptions": {
    "target": "es6",
    "module": "es6",
    "moduleResolution": "node",
    "jsx": "react",
    "noImplicitAny": true,
    "strictNullChecks": true,
    "sourceMap": true,
    "lib": [
      "dom",
      "es2015",
      "es2016"
    ],
    "baseUrl": "./src",
    "paths": {
      "app": ["./app"]
    }
  },
  "include": [
    "src/**/*"
  ]
}

这是我的项目结构:

[rootDir]
|
|- [src]
|  |
|  |-[app]
|    |
|    |-[components]
|      | ... react components live here
|      |- Test.tsx
|      |- SomeComponent.tsx
|      |- index.js (export { default as Test } from './Test')
|
|- tsconfig.json
|- webpack.config.js

我将awesome-typescript-loaderWebpack 2与一起使用,并且在其中也包含了用于加载路径的插件。我也使用Visual
Studio Code,它内置了Typescript,但是显示了相同的错误。

在我的Typescript组件中,SomeComponent.tsx我想包含另一个组件,如下所示:

import * as React from 'react'
import { Test } from 'app/components'

我收到以下错误:

Cannot find module 'app/components'

问题答案:

解决方案是编辑路径配置以查找嵌套文件。

"baseUrl": ".",
"paths": {
  "app*": ["src/app*"]
}

现在,当我添加import { Test } from 'app/components'Typescript时,它将开始研究src/app/components/index.js并起作用。我还喜欢添加@别名以避免与其他模块发生冲突。像这样:

  "@app*": ["src/app*"]


 类似资料:
  • 问题内容: 我不明白为什么找不到它。 导入组件文件。 是什么赋予了? 问题答案: 如果您不使用打字稿2.1,则应升级到它。似乎您使用的是@types中的2.x版本。 这是我现在正在使用的工作文件: 自从我解决了您遇到的同样问题以来已经过了几天,但我认为这里的关键是and 。

  • 我对 vscode 本身有问题。为更简单的导入嵌套模块添加路径后,我发现 vscode 正在使用新添加的别名接受导入 目录中的。不幸的是,它完全忽略文件夹中的那些导入。测试工作正常,不会抱怨这些别名。但是由于某种原因,vscode 一直在向我展示中指。我发现当我在 文件中包含文件夹时,vscode 停止用红线标记这些导入。你对此有类似的问题吗?处理此问题的最佳方法是什么? 这是我的文件:

  • 我正在用cakephp开发一个用户库,用于我的应用程序中的翻译操作。我想创造。po文件在Lib目录中,这就是为什么我在Lib目录中创建Locale文件夹,并在相应的语言目录中创建po文件。但问题是CakePHP在默认情况下是在其默认区域设置位置搜索po文件的。现在我的语言环境目录在Lib文件夹中。 我怎么能让cakephp搜索po文件在我自己的区域设置目录这是在Lib文件夹? 这是我的翻译课程代码

  • 我有以下代码: 我遇到一个错误,指向.find并说: “字符串”类型的变量中不存在属性find。我知道错误在说什么,但是我如何将< code>$modal定义为一个我可以使用< code >的变量。查找于? 同样,现在我在typescript世界里,有没有更好的方法来定义modal,而不是在这里将它定义为var?

  • 我的代码: 错误消息来自TypeScript(3.0)编译器: TS2322:类型“string[]”不可分配给类型“[string, string, string, string, string, string, string]”。“string[]”类型中缺少属性“0”。 如果我将字符串[]更改为只读数组 TS2322:“ReadonlyArray”类型不能分配给类型“[string,stri

  • 我有3个项目,ProjectB,ProjectC。 当我构建ProjectB时,它没有任何问题。但是当我试图构建ProjectA时,它在控制台上出现以下错误而失败。 评估项目“:ProjectB”时出现问题。在项目:ProjectB中找不到路径为:ProjectC的项目。 build.gradle-ProjectC settings.gradle-ProjectC build.gradle - 项

  • 我还没有反应过来,所以我为这个问题的无知道歉。 我刚刚创建了一个新的React应用程序,我一直在使用文件夹结构。以下是我当前的文件夹结构: 在/react-app/src/components/app/app.js中,我需要导入logo.svg,它位于/react-app/src/assets/images/logo/logo.svg中。 在App.js中,我有以下行来导入徽标: 我得到以下错误:

  • 当我这样做时,我正在运行这条消息: Playbook:junos_config_new.yml 这是我的剧本... 目录~/ansible_junos/files/syslog_config.txt位于正确的位置~/ansible_junos/files/应该是放置所有要与防火墙进行比较的配置的正确位置吗? 请让我知道。