gpt4 book ai didi

node.js - 在 typescript 中使用 allowJs = true 时在 node_modules 中缺少 ./lib 文件

转载 作者:搜寻专家 更新时间:2023-10-30 21:58:48 24 4
gpt4 key购买 nike

我是 NodeJS 的新手。我开始构建一个快速应用程序,其中我的一个 .js 文件正在使用 requestRetry 模块。它工作得很好。后来我决定慢慢将Typescript引入到我的项目中。我将 express 框架所需的基本部分转换为 Typescript,但我的一些文件(我提到的那个)仍然是 .js。

这是我的 tsconfig.js

{
"compilerOptions": {
"module": "commonjs",
"allowJs": true,
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/**/*",
"src/types/*"
]
}
},
"include": [
"./src/**/*"
]
}

项目编译正常,但是当我运行应用程序时它崩溃了

module.js:559
throw err;
^

Error: Cannot find module './lib/cookies'
at Function.Module._resolveFilename (module.js:557:15)
at Function.Module._load (module.js:484:25)
at Module.require (module.js:606:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (D:\@MyProjects\OneDriveAriaStats\dist\node_modules\request\index.js:16:15)
at Module._compile (module.js:662:30)
at Object.Module._extensions..js (module.js:673:10)
at Module.load (module.js:575:32)
at tryModuleLoad (module.js:515:12)
at Function.Module._load (module.js:507:3)

在我当前的设置中,tsc 将所有编译后的文件输出到 dist 文件夹中,并在其下创建一个 node_modules,因为我的 tsconfig.js 中的 allowjs = true。我进一步挖掘并发现 dist/node_module/request 下的 lib 文件夹丢失了。它存在于 node_module/request 中。

我在这里做错了什么?为什么 tsc 没有复制请求模块所需的所有文件?

最佳答案

我不认为 distrequestretry 下缺少 lib 是问题所在。我看过 package.json of requestretry .因为它声明的 main 字段是 index.js,如果你使用 node resolution strategytsconfig.json中,TypeScript会将requestretry模块解析为node_modules/requestretry/index.js,因此不涉及node_modules/requesretry/lib/ 根本没有。事实上,that package 中没有lib 目录。 .

关于node.js - 在 typescript 中使用 allowJs = true 时在 node_modules 中缺少 ./lib 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49440682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com