簡體   English   中英

typescript 路徑分辨率問題。 (錯誤:找不到模塊'[module_name]')

[英]Issue with typescript path resolution. (Error: Cannot find module '[module_name]')

我有一個帶有 typescript 的節點項目設置。 一切都很好,但最近我一直想實現路徑解析。 為什么這么麻煩?

這是我的項目架構:

└───src
    ├───models
    ├──────Person.ts
    ├───query
    ├──────index.ts
    └───index.ts
├───package.json
└───tsconfig.json

我的 tsconfig 設置如下:

{
  "compilerOptions": {
    "moduleResolution": "node",
    "rootDir": "./src",
    "outDir": "./build",
    "baseUrl": "./src",
    "paths": {
      "@models/*": [ "models/*" ]
    }
  },
  "exclude": [ "node_modules", "build" ],
  "include": [ "src/**/*.ts" ],
}

在 VS 代碼中一切正常。
我可以使用以下方法輕松地從我的索引文件中導入 Person.ts:

import Person from '@models/Person'.

tsc 構建時沒有任何錯誤或警告。

但是當我跑步時

node build/index.js

它給了我以下錯誤:

Error: Cannot find module '@models/Person'

在 typescript 編譯之后,似乎路徑沒有正確轉換。

任何想法?

這是我最終尋求的解決方案:
我已將cross-envtsconfig-path添加到我的package.json中。
允許我像這樣運行我的項目:

"scripts": {
  "start": "cross-env TS_NODE_BASEURL=./build node --require tsconfig-paths/register ./build/index.js",
  "build": "tsc",
  "watch": "tsc-watch --onSuccess \"yarn start\""
},

請注意,我使用cross-env環境 package 只是因為我在 windows 上。

我仍然不明白為什么路徑解析不是 typescript 編譯所固有的,但無論如何。 它就像一個魅力! 在 Linux 和 Windows 上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM