NPM - 无法从 lodash 库中找到名称“Many”和无法找到命名空间“_”
Posted
技术标签:
【中文标题】NPM - 无法从 lodash 库中找到名称“Many”和无法找到命名空间“_”【英文标题】:NPM - Cannot find name 'Many' and Cannot find namespace '_' from lodash library 【发布时间】:2017-07-09 15:19:56 【问题描述】:我正在尝试在我的 angular2 项目中使用 lodash。
$ npm install --save lodash
$ npm install --save @types/lodash
我在安装 lodash 时收到此警告消息
还有这个用于类型
我忽略了这些警告消息并继续。现在在我的组件中,我添加了这一行..
import * as _ from 'lodash';
当应用程序开始编译时,我在控制台中收到以下错误:
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:244:12
Duplicate identifier '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:244:15
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:246:24
Cannot find name 'Partial'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:248:18
Duplicate identifier '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:366:38
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:2083:23
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5585:43
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5592:43
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5599:43
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5606:43
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5639:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5648:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5655:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5662:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5671:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5678:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5685:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5694:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5701:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5708:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5717:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5724:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:5731:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:8
A computed property name must be of type 'string', 'number', 'symbol', or 'any'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:9
Cannot find name 'P'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:14
Cannot find name 'keyof'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:20
']' expected.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:20
Cannot find name 'T'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:21
';' expected.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:22
Declaration or statement expected.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:25
A parameter initializer is only allowed in a function or constructor implementation.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:30
Cannot find name 'T'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:32
']' expected.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:33
')' expected.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:34
Declaration or statement expected.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:36
Declaration or statement expected.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11444:39
Cannot find name 'boolean'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11453:28
Cannot find name 'ConformsPredicateObject'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:11464:41
Cannot find name 'ConformsPredicateObject'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15394:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15403:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15436:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15445:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15480:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15489:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15522:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15531:11
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15564:21
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15571:21
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15604:23
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15611:23
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15627:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15636:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15646:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15656:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15666:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15676:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15686:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15696:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15731:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15739:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15746:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15778:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15786:20
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15793:20
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15856:20
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15856:36
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:15872:20
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16533:32
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16543:32
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16553:32
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16622:32
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16631:32
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16640:32
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16700:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16709:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16719:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16729:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16739:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16749:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16759:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16769:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16788:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16797:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16806:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16816:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16824:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16834:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16842:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16864:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16874:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16884:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16895:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16904:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16915:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:16924:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17081:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17089:20
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17096:20
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17112:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17121:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17130:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17139:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17149:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17157:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17167:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17175:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:17926:38
Cannot find name 'TemplateSettings'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18546:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18554:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18676:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18684:18
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18693:46
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18702:46
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18818:30
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18855:42
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18862:42
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18869:42
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18876:42
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18883:42
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18895:39
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18902:39
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18909:39
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18916:39
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18923:39
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18935:38
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18942:38
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18949:38
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18956:38
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18963:38
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:18974:38
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19014:52
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19021:57
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19028:57
Cannot find name 'Many'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19188:21
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19212:21
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19235:22
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19258:22
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19281:20
Cannot find namespace '_'.
ERROR in [default] /path/to/project/node_modules/@types/lodash/index.d.ts:19441:0
Declaration or statement expected.
package.json
"name": "final-project",
"version": "0.0.0",
"license": "MIT",
"angular-cli": ,
"scripts":
"start": "ng serve",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update",
"e2e": "protractor",
"populate-db": "./node_modules/.bin/ts-node ./populate-db.ts",
"batch-server": "./node_modules/.bin/ts-node ./batch-server.ts"
,
"private": true,
"dependencies":
"@angular/common": "2.0.1",
"@angular/compiler": "2.0.1",
"@angular/core": "2.0.1",
"@angular/forms": "2.0.1",
"@angular/http": "2.0.1",
"@angular/platform-browser": "2.0.1",
"@angular/platform-browser-dynamic": "2.0.1",
"@angular/router": "3.0.0",
"@types/lodash": "^4.14.52",
"@types/request": "0.0.30",
"angularfire2": "^2.0.0-beta.8",
"core-js": "^2.4.0",
"firebase": "^3.6.9",
"firebase-queue": "^1.5.0",
"lodash": "^4.17.4",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"zone.js": "^0.6.21"
,
"devDependencies":
"@types/jasmine": "^2.2.30",
"angular-cli": "1.0.0-beta.16",
"codelyzer": "~0.0.26",
"jasmine-core": "2.4.1",
"jasmine-spec-reporter": "2.5.0",
"karma": "0.13.22",
"karma-chrome-launcher": "0.2.3",
"karma-jasmine": "0.3.8",
"karma-remap-istanbul": "^0.2.1",
"protractor": "4.0.3",
"ts-node": "^1.2.1",
"tslint": "3.13.0",
"typescript": "2.0.10"
我在这里遗漏了什么吗?我需要满足同伴依赖吗?怎么样?
【问题讨论】:
顺便说一下,这是一个 angular-cli 项目。它使用 webpack 进行编译。 我认为如果您从文件中删除 lodash 的导入,您的代码将会编译。编译器会自动搜索特定位置的类型。可以直接使用_ 【参考方案1】:最新的 lodash 使用 typescript 2.1,它与现在仍然使用 ts 2.0 的 ionic 不兼容。正如您在我使用的 package.json 文件中看到的那样
"typescript": "2.0.10"
所以,如果您使用与我相同的版本并最终出现相同的错误,只需安装
$ npm install --save lodash
并将其添加到依赖项中的 package.json 文件中
"dependencies":
...
"@types/lodash": "ts2.0"
和
$ npm install
您现在可以导入
import * as _ from "lodash";
【讨论】:
【参考方案2】:我遇到了同样的问题,经过一番谷歌搜索后,我发现了这条评论https://github.com/driftyco/ionic-app-scripts/issues/700#issuecomment-276684485。安装 typescript 2.0 兼容类型为我解决了这个问题。在你的 package.json 中使用 "@types/lodash": "ts2.0"。
【讨论】:
以上是关于NPM - 无法从 lodash 库中找到名称“Many”和无法找到命名空间“_”的主要内容,如果未能解决你的问题,请参考以下文章
npm WARN 已弃用 lodash@2.4.2: lodash@<3.0.0 不再维护
npm 审计修复后如何解决原型污染 lodash 需要人工审核
npm 包无法安装“npm ERR!错误:EACCES:权限被拒绝”
npm : 无法将“npm”项识别为 cmdlet函数脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。