【发布时间】:2020-06-06 23:09:15
【问题描述】:
我知道有很多关于如何通过 NPM 将依赖项导入 TypeScript 的主题。我尝试执行以下操作
npm install --save node-fetch
然后是import * as fetch from 'node-fetch 在我的app.ts 中。
为了在我的代码中使用fetch。
但是我无法在我的代码中使用该库并且我收到以下错误:
错误 TS2307 (TS) 找不到模块“node-fetch”。
我查看了node_modules 下的已加载模块,并在那里找到了node-fetch,因此我假设该库已成功安装。许多前面提到的线程还提到了一些tsconfig-file,我在我的项目中找不到。似乎 VS 对如何实现 TypeScript 的设置有自己的想法,这些设置位于我的 csproj 文件中:
<TypeScriptLib>es2015</TypeScriptLib>
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptJSXEmit>None</TypeScriptJSXEmit>
<TypeScriptModuleKind>ES2015</TypeScriptModuleKind>
<TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
<TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
<TypeScriptRemoveComments>False</TypeScriptRemoveComments>
<TypeScriptOutFile />
<TypeScriptOutDir />
<TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
<TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
<TypeScriptSourceMap>True</TypeScriptSourceMap>
<TypeScriptMapRoot />
<FilesToIncludeForPublish>AllFilesInTheProject</FilesToIncludeForPublish>
我也为其他库获得了这个,例如leaflet-geosearch。
这是我的package.json:
{
"name": "myproject",
"version": "1.0.0",
"devDependencies": {
"@types/d3": "^5.7.2",
"@types/jquery": "^3.3.32",
"@types/leaflet": "^1.5.8",
"@types/leaflet-geosearch": "^2.7.1",
"d3": "^5.15.0",
"jquery": "^3.4.1",
"leaflet": "^1.6.0",
"leaflet-geosearch": "^2.7.0",
"node-fetch": "^2.6.0"
}
}
我已经删除了https://stackoverflow.com/a/15597395/2528063 所示的全局 npm-modules 并再次将node-fetch 安装到本地项目中,但无济于事。
【问题讨论】:
-
只需使用 VS Code。当你在命令行运行
tsc时,它会说什么?这消除了 VS。 -
github.com/tomdale/ember-network/issues/10 - 这也是你的问题吗?没有在正确的文件夹中运行 npm install。
-
@JGFMK 老实说,我对 TypeScript 了解不多,但我很确定我的堆栈中没有任何快速启动。
-
我用 npm 做了一些事情。几年前使用 Ionic 开发 - 和一些 Angular。您通常会设置一个项目 - 然后在您的项目结构中运行命令。因此,您为框架进行了第一次安装 - 在您的项目中进行了第二次安装,您已经获得了 package.json。您确定您没有混淆在项目文件夹中安装框架之类的操作 - 反之亦然。这也是我一直在逃避的。链接中的评论足以激发这种思路。全局安装与本地项目。您也可以在安装过程中更新项目 package.json。
-
@JGFMK 将框架安装到项目中?你指的是哪个框架?不过,我附加了我的 package.json。
标签: typescript visual-studio-2017