typescript - Typescript 未从“node_modules”文件夹中找到第 3 方模块
问题描述
我正在开发一个普通的 Typescript 应用程序,并通过导入我自己创建的模块成功地对其进行了测试,这些模块是项目的一部分。现在我正在尝试从“node_modules”文件夹中包含一个第 3 方模块,但编译器无法找到该模块。
import * as pnp from '@pnp/pnpjs';
以下是我对 tsconfig 的设置:
{
"compileOnSave": true,
"compilerOptions": {
"types": [],
"sourceMap": true,
"module": "amd",
"target": "es5",
"noEmitOnError": true,
"outDir": "./dist"
},
"exclude": [
"node_modules",
"obj",
"bin"
]
}
下面是我的 package.json:
{
"version": "1.0.0",
"name": "OSD.SharePointHostedApp",
"private": true,
"devDependencies": {
"@types/chai": "^4.1.7",
"@types/sharepoint": "^2013.1.6"
},
"dependencies": {
"jquery": "^3.3.1",
"@pnp/pnpjs": "^1.2.5",
"chai": "^4.2.0"
}
}
打字稿版本:1.0.3.0。(我尝试更新到最新版本,但它仍然显示 1.0.30.0,也许是因为这个??)
我在这里想念什么?我已经检查并验证了第 3 方模块存在于 node_modules 中。
更新
版本有问题。即使我安装了最新版本的 typescript 3.1.6,它也没有被拾取,并且显示了旧版本 1.0.3.0。不知何故,Typescript 1.0 作为 Microsoft SDK 的一部分安装在 C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0 文件夹中。我删除了该文件夹,现在当我执行 tsc -v 最新版本号时显示-> 3.1.6 。但原来的问题仍然存在
解决方案
要让 TypeScript 在 下查找模块node_modules
,该moduleResolution
选项必须设置为node
. 设置为module
选项时amd
,默认moduleResolution
值为IS classic
。(请参阅编译器选项表。)因此,您必须"moduleResolution": "node"
在tsconfig.json
.
推荐阅读
- excel - VBA将excel中的不同字段传输到一个没有表格的word文档中
- r - 如何将 R Markdown 输出与以前的版本进行比较?
- apache - “httpd.service 的作业失败,因为控制进程以错误代码退出。” 我该如何解决?
- elasticsearch - Elasticsearch 6 中一个索引的多个映射
- java - 比较段落中的某些字符串(句子的一部分)
- tsql - 我可以在 SQL Server 2016 中使用函数或分析函数的列上创建索引吗?
- php - 无法解析宅基地内的主机本地站点
- angular - 如何在表单组的字段中发送图像?
- html - 如何覆盖作为列方向弹性容器一部分的一个元素的列方向?
- javascript - 是否可以使用 jQuery 过滤已经获取的数据