cri*_*ari 59 javascript node.js npm typescript
我有一个npm
不久前构建的命令行应用程序,它运行良好。现在我已经更新了它,并且由于这段时间内打字稿版本的变化,当我想运行这个包时,我收到一个错误,其中显示:
Debug Failure. False expression: Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.
Run Code Online (Sandbox Code Playgroud)
这是package.json
文件:
{
"name": "initialiseur",
"version": "4.0.4",
"main": "src index.ts",
"author": "@crispengari",
"license": "MIT",
"bin": "src/index.ts",
"description": "THIS IS A BOILER PLATE THAT INITIALIZE A NODE EXPRESS BACKEND FOR TYPESCRIPT AND JAVASCRIPT",
"scripts": {
"watch": "tsc -w",
"start": "ts-node src/index.ts",
"dev": "nodemon dist/index.ts",
"start:fast": "tsnd --respawn src/index.ts"
},
"dependencies": {
"@types/inquirer": "^7.3.3",
"@types/node": "^17.0.42",
"@types/npm": "^7.19.0",
"chalk": "^4.1.2",
"cors": "^2.8.5",
"cross-fetch": "^3.1.5",
"dotenv": "^10.0.0",
"inquirer": "^8.1.2",
"node-fetch": "^3.2.6",
"octokit": "^1.7.2",
"ts-node": "^10.8.1",
"typescript": "^4.6.5"
},
"devDependencies": {
"@types/node-fetch": "^2.6.1",
"nodemon": "^2.0.12",
"ts-node-dev": "^2.0.0"
},
"bugs": {
"url": "https://github.com/CrispenGari/initialiseur/issues"
},
"homepage": "https://github.com/CrispenGari/initialiseur#readme",
"keywords": [
"node.ts",
"node.js",
"typescript",
"ts",
"nodejs-backend",
"javascript",
"js",
"express",
"backend"
]
}
Run Code Online (Sandbox Code Playgroud)
当我通过运行在本地测试它时:
npm start
# or
yarn start
Run Code Online (Sandbox Code Playgroud)
一切工作正常,但将其发布到 npm 启动后,我运行以下命令:
npx initialiseur
Run Code Online (Sandbox Code Playgroud)
然后我从命令行收到错误。整个错误如下:
C:\Users\crisp\AppData\Roaming\npm\node_modules\initialiseur\node_modules\typescript\lib\typescript.js:42536
ts.Debug.assert(typeof typeReferenceDirectiveName === "string", "Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.");
^
Error: Debug Failure. False expression: Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.
at Object.resolveTypeReferenceDirective (C:\Users\crisp\AppData\Roaming\npm\node_modules\initialiseur\node_modules\typescript\lib\typescript.js:42536:18)
at C:\Users\crisp\AppData\Roaming\npm\node_modules\ts-node\src\resolver-functions.ts:131:51
at Array.map (<anonymous>)
at Object.resolveTypeReferenceDirectives (C:\Users\crisp\AppData\Roaming\npm\node_modules\ts-node\src\resolver-functions.ts:130:31)
at actualResolveTypeReferenceDirectiveNamesWorker (C:\Users\crisp\AppData\Roaming\npm\node_modules\initialiseur\node_modules\typescript\lib\typescript.js:116673:163)
at resolveTypeReferenceDirectiveNamesWorker (C:\Users\crisp\AppData\Roaming\npm\node_modules\initialiseur\node_modules\typescript\lib\typescript.js:116973:26)
at processTypeReferenceDirectives (C:\Users\crisp\AppData\Roaming\npm\node_modules\initialiseur\node_modules\typescript\lib\typescript.js:118455:31)
at findSourceFileWorker (C:\Users\crisp\AppData\Roaming\npm\node_modules\initialiseur\node_modules\typescript\lib\typescript.js:118340:21)
at findSourceFile (C:\Users\crisp\AppData\Roaming\npm\node_modules\initialiseur\node_modules\typescript\lib\typescript.js:118195:26)
at processImportedModules (C:\Users\crisp\AppData\Roaming\npm\node_modules\initialiseur\node_modules\typescript\lib\typescript.js:118601:25)
Run Code Online (Sandbox Code Playgroud)
从上面的错误我可以看出问题可能来自typescript
,我尝试更改打字稿的版本,但仍然无法正常工作。在我的src/index.ts
看来如下:
#!/usr/bin/env ts-node
import path from "path";
import inquirer from "inquirer";
import { writeFile, readFile } from "fs/promises";
....
Run Code Online (Sandbox Code Playgroud)
Nil*_*rdt 41
跑步npm install -g ts-node@latest
为我解决了这个问题。我需要更新我的全局安装ts-node
版本。
Fer*_*ojo 31
重申之前对纱线用户的回答:
yarn add -D ts-node@latest
为我解决了。这些是我现在的版本:
"ts-node": "^10.9.1",
"typescript": "^4.7.4"
Run Code Online (Sandbox Code Playgroud)
最重要的答案可能不应该建议降级。
编辑
如果您仍然遇到问题,请尝试删除node_modules
文件夹并通过运行重新安装yarn
。
如果仍然不起作用,您可能需要将这些版本添加到resolutions
中的字段中package.json
,然后运行yarn install --force
。
{
"resolutions": {
"ts-node": "^10.9.1",
"typescript": "^4.7.4"
}
}
Run Code Online (Sandbox Code Playgroud)
不过,我认为这有点临时措施,我不建议永远保留这些决议。
Pau*_*eit 19
和几天的情况一样。
将 ts-node 恢复到 v10.6.0 可以解决这个问题。
Die*_*lva 13
按照 @alex-totolici 的建议更新 Typescript :npm i typescript@latest
并更新 ts 节点:npm i ts-node@latest
记住区分全局 ts-node 和包 ts-node;您必须使用 npx 来运行本地 ts-node
> npx ts-node ...
Run Code Online (Sandbox Code Playgroud)
不管怎样,这是我在反复 rm -rf node_nodules 和yarn add ts-node@latest 30分钟后终于找到的。
归档时间: |
|
查看次数: |
54283 次 |
最近记录: |