我有这样的文件结构:
∟ src
∟ math
├ funcs.ts
├ constants.ts
├ index.ts
├ index.ts
在我的src/index.ts
上,我尝试了以下方法:
import * as math from './math/index.js';
console.log(`pi = ${math.PI}`);
console.log(`The area of a circle with radius 4 is ${math.circleArea(4)}`);
一切都运转得很好。
但是,我需要使用Express.js,因此我更新了代码:
import express from 'express';
import * as math from './math/index.js';
console.log(`pi = ${math.PI}`);
console.log(`The area of a circle with radius 4 is ${math.circleArea(4)}`);
现在,我有这个错误:
src/index.ts:1:21 - error TS2792: Cannot find module 'express'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?
这是我的tsconfig.json:
{
"compilerOptions": {
"outDir":"build",
"target": "ES2022",
"module": "ES2022"
}
}
这是我的包裹
{
"name": "typescript-lab",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "tsc",
"start": "npm run build && node ./build/index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.1",
"typescript": "^4.7.4"
}
}
我不能将tsconfig.json设置为使用module ='node '的原因是因为我希望能够正确地导入我自己的模块,并且我还需要在我的index.ts
文件中使用最顶层的await
...
我更改package.json
或tsconfig.json
的所有尝试都导致以下结果之一:
1.我无法使用最顶层的await
1.我无法导入/找到我的模块
1.我无法导入任何节点模块(在本例中为express)
有人能帮帮我吗?谢谢
1条答案
按热度按时间a8jjtwal1#
我的tsconfig.json很可能,注意添加“类型”:“模块”到package.json,“模块分辨率”:“节点16”和
从'./math/index.js'导入 * 作为数学;