node.js - ข้อผิดพลาด Typescript ในไฟล์ node_modules: error TS2792: ไม่สามารถหามอดูล '../' ได้
ฉันเพิ่งเริ่มเรียน TypeScript ฉันได้รับข้อผิดพลาดนี้ขณะคอมไพล์โปรเจกต์ ts
node_modules/@types/validator/lib/isBoolean.d.ts:1:23 - ข้อผิดพลาด TS2792: ไม่สามารถหาโมดูล '../' ได้ คุณหมายถึงการตั้งค่า option 'moduleResolution' เป็น 'node' หรือเพิ่ม aliases ใน option 'paths' หรือไม่?
1 import validator from '../';
~~~~~
การคอมไพล์ใน ES5 ไม่เกิดข้อผิดพลาดใด ๆ แต่กับ ES6 ขึ้นไปจะให้ข้อผิดพลาดนี้
นี่คือไฟล์ tsconfig ของฉัน
{
"compilerOptions": {
"target": "ES2017",
"lib": ["DOM", "ES2017"],
"esModuleInterop": true,
"outDir": "dist",
"rootDir": "./src"
},
"include": ["./src/"],
"exclude": ["node_modules"],
}
นี่คือไฟล์ package.json ของฉัน,
{
"name": "",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"build": "tsc",
"tsc": "tsc --watch",
"start": "node dist/app.js",
"dev": "nodemon dist/app.js",
"deploy": "tsc && node dist/app.js"
},
"keywords": [],
"author": "",
"dependencies": {
"dotenv": "^16.0.1",
"express": "^4.18.1",
"mongoose": "^6.5.2",
"postgres": "^3.2.4",
"reflect-metadata": "^0.1.13",
"sequelize-typescript": "^2.1.3",
"typescript": "^4.7.4"
},
"devDependencies": {
"@types/dotenv": "^8.2.0",
"@types/sequelize": "^4.28.14",
"@types/validator": "^13.7.6",
"@tsconfig/node16": "^1.0.3",
"@types/express": "^4.17.13",
"@types/node": "^18.7.11",
"nodemon": "^2.0.19",
"ts-node": "^10.9.1",
"ts-node-dev": "^2.0.0"
}
}
คำตอบ #1
ตั้งค่าออปชัน 'moduleResolution' เป็น 'node' )
"moduleResolution"="node" ถ้าตัวเลือก "module" ไม่ถูกตั้งค่า
https://www.typescriptlang.org/docs/handbook/modules.html