首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型记录导入返回“找不到模块”

类型记录导入返回“找不到模块”
EN

Stack Overflow用户
提问于 2020-04-16 12:25:33
回答 3查看 4.6K关注 0票数 1

我试图将一个模块导入为import Something from "@module",但它返回

找不到模块“@config”

“@模块”是“./src/utils/模块”的别名。

"app.ts“

代码语言:javascript
复制
import 'module-alias/register';

import Something from '@module';

"/utils/module.ts“

代码语言:javascript
复制
export enum Something {
    CONSTANT = 'constant'
}

"package.json“

代码语言:javascript
复制
{
  "name": "crawler",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "dev": "nodemon ./src/app.ts",
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/node": "^13.11.1",
    "nodemon": "^2.0.3",
    "ts-node": "^8.8.2",
    "typescript": "^3.8.3"
  },
  "dependencies": {
    "module-alias": "^2.2.2"
  },
  "_moduleAliases": {
    "@module": "./src/utils/module"
  }
}

"tsconfig.json“

代码语言:javascript
复制
{
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "esModuleInterop": true,
    "target": "es6",
    "lib": [
      "es6"
    ],
    "outDir": "dist",
    "noEmitOnError": true,
    "sourceMap": true
  },
  "include": [
    "src/**/*.ts"
  ],
  "paths": {
    "@module": [
      "./src/utils/module"
    ]
  },
  "exclude": [
    "node_modules"
  ]
}

为什么import "@module"const Something = require('@module')工作正常,而import Something from "@module"返回无法找到的模块错误?

这是项目结构:

代码语言:javascript
复制
- crawler
|-- src
    -- app.ts
    |-- utils
        -- module.ts
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-16 12:49:52

"paths"应该位于"compilerOptions"部分,而不是tsconfig.json的根目录中。

更多关于路径映射这里的信息

tsconfig.json 这里综述

票数 1
EN

Stack Overflow用户

发布于 2020-04-16 12:44:11

我有一个类似的问题,“瞬间”,我有像下面这样的导入,它确实工作。

代码语言:javascript
复制
import * as moment from 'moment';
票数 0
EN

Stack Overflow用户

发布于 2020-04-16 12:49:19

注意,在通过这种方式进行导入时,导入看起来很好,但是在执行prod编译时可能会出现AOT错误,比如“不能使用引用”之类的东西。为了不详细说明,这必须与一些CommonJS模块有关(据我理解)。现在很受欢迎,所以它似乎出现了相当多。

为了避开那个(几周前我偶然遇到的),把“时刻”设置在一个const上:

代码语言:javascript
复制
import * as moment from 'moment':

(later where you declare consts)

const _moment = moment;

然后在代码中使用_moment。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61250213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档