ค้นหาเว็บไซต์

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