簡體   English   中英

TS 節點:找不到源文件

[英]TS-Node: Could not find sourceFile

我的項目一直使用ts-node來運行 JavaScript 和 TypeScript 的混合。 最近它停止工作,沒有明顯的原因。 在最簡單的層面上,這是它的運行方式和它產生的錯誤:

$ TS_NODE_PROJECT=./tsconfig.json ../../node_modules/.bin/ts-node app.js                                                                                   MSTR-1513
INFO   | Arrow/1.6.0
No deployment manifest found
Uncaught Exception Could not find sourceFile: '/Users/jonah/Projects/myapp/server/src/v1/route/Routes.ts' in [].
Error: Could not find sourceFile: '/Users/jonah/Projects/myapp/server/src/v1/route/Routes.ts' in [].
    at getValidSourceFile (/Users/jonah/Projects/myapp/node_modules/typescript/lib/typescript.js:122211:23)
    at Object.getEmitOutput (/Users/jonah/Projects/myapp/node_modules/typescript/lib/typescript.js:122580:30)
    at getOutput (/Users/jonah/Projects/myapp/node_modules/ts-node/src/index.ts:354:30)
    at Object.compile (/Users/jonah/Projects/myapp/node_modules/ts-node/src/index.ts:395:32)
    at Module.m._compile (/Users/jonah/Projects/myapp/node_modules/ts-node/src/index.ts:473:43)
    at Module._extensions..js (module.js:663:10)
    at Object.require.extensions.(anonymous function) [as .ts] (/Users/jonah/Projects/myapp/node_modules/ts-node/src/index.ts:476:12)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

app.js摘錄:

const Routes = require('./v1/route/Routes').default;
server.app.use('/v1', new Routes().router);

我對錯誤的這一部分感到非常困惑: Could not find sourceFile: '/Users/jonah/Projects/myapp/server/src/v1/route/Routes.ts' 我可以將該確切路徑粘貼到終端中,然后查看該文件確實存在。 這是tsconfig.json

{
  "compileOnSave": true,
  "compilerOptions": {

    "allowJs": false,
    "removeComments": true,
    "noImplicitAny" : false,
    "module": "commonjs",
    "target": "es2017",
    "sourceMap": true,
    "watch": false,
    "types": ["mocha"],
    "forceConsistentCasingInFileNames": false
  },
  "include": [
    "./v1/**/*.ts",
    "../test/v1/**/*.ts"
  ],
  "exclude": [
    "../../node_modules"
  ]
}

運行當前最新的 TypeScript (3.5.2) 和 ts-node (8.3.0)。 什么類型的情況可能會產生這種錯誤? 我什至嘗試過使用include來確保導入的文件被覆蓋。 單獨運行 TypeScript 編譯器可以正常工作。

../../node_modules/.bin/tsc --project tsconfig.json

我有一種感覺,這與循環依賴有關。 特別是@Brenne 的回答說:

更改導入的順序有所幫助。

根據我的經驗,這些莫名其妙的錯誤往往是循環依賴。

我只熟悉webpack 插件來檢測這些. 但是,您可以嘗試刪除 require 並查看它是否正確構建。 從那里,從'./v1/route/Routes'文件中刪除其他需要/導入的部分,以查看是否有任何導致循環 dep

我不熟悉 tsc,因為我總是在 webpack 中使用 babel,但我認為如果你想將 js 編譯為 ts,你需要啟用allowJs選項。

暫無
暫無

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

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