我正在尝试将模块导入为import Something from "@module"
,但是它返回
找不到模块'@config'
“ @ module”是“ ./src/utils/module”的别名
“ app.ts”
import 'module-alias/register';
import Something from '@module';
“ / utils / module.ts”
export enum Something {
CONSTANT = 'constant'
}
“ package.json”
{
"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”
{
"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"
返回找不到模块错误?
这是项目结构:
- crawler
|-- src
-- app.ts
|-- utils
-- module.ts
答案 0 :(得分:1)
答案 1 :(得分:0)
我在导入“矩”时遇到了类似的问题,如下所示,它确实起作用。
import * as moment from 'moment';
答案 2 :(得分:0)
请注意,以这种方式导入时在进行开发时,导入看起来会很好,但是在进行prod编译时可能会出现AOT错误,例如“不能使用引用”之类。为了不做过多阐述,这与某些CommonJS模块有关(据我所知)。片刻非常受欢迎,因此似乎出现了很多。
要解决这个问题(我在几周前就遇到了),请将“ moment”设置为const:
import * as moment from 'moment':
(later where you declare consts)
const _moment = moment;
然后在代码中使用_moment。