为啥 npm 试图在错误的目录中找到 package.json?
Posted
技术标签:
【中文标题】为啥 npm 试图在错误的目录中找到 package.json?【英文标题】:Why npm tries to find package.json in the wrong directory?为什么 npm 试图在错误的目录中找到 package.json? 【发布时间】:2016-07-28 09:02:57 【问题描述】:我有一个带有 TypeScript、Angular 和几个依赖项的网络应用程序。
npm 当然也在这里。
package.json
是从 npm init
的乞讨中引入项目的,现在看起来是这样的:
"name": "myApp",
"version": "0.0.8-d",
"description": "Web App",
"author": "Author",
"license": "ISC",
"repository":
"type": "git",
"url": "MYURL"
,
"bugs":
"url": "MYURL"
,
"homepage": "MYURL",
"browserify":
"transform": [
"debowerify"
]
,
"dependencies":
"malihu-custom-scrollbar-plugin": "^3.1.3"
,
"devDependencies":
"browserify": "~13.0.0",
"connect-history-api-fallback": "^1.2.0",
"connect-modrewrite": "^0.8.2",
"debowerify": "~1.2.0",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-clean-css": "^2.0.4",
"gulp-concat": "^2.6.0",
"gulp-connect": "^3.2.2",
"gulp-less": "^3.0.5",
"gulp-ng-annotate": "^2.0.0",
"gulp-sass": "^2.2.0",
"gulp-sourcemaps": "^1.6.0",
"gulp-typescript": "^2.12.2",
"gulp-uglify": "^1.5.3",
"jasmine": "^2.4.1",
"run-sequence": "^1.1.5",
"typescript": "^1.8.9",
"vinyl-source-stream": "^1.1.0"
,
"scripts":
"test": "echo \"Error: no test specified\" && exit 1"
我的文件结构也是这样的:
Root
|-- tscode
|-- compiled
|-- html_files
|-- node_modules
|-- libs
| package.json
这个想法是 npm 似乎工作正常,一切都安装正确我可以添加/删除依赖项但我总是让这个工作:
npm WARN enoent ENOENT: no such file or directory, open '/Projects/MyApp/tscode/package.json'
package.json 应该在根文件夹中,但我仍然收到这个非常烦人的警告。如您所见,npm 在内部一级文件夹中搜索 json 文件,而不是在根目录中。
如果我这样做:
npm list --depth=0
然后我得到了我的依赖项的正确列表,但也:-> /Projects/MyApp/innerfolder extraneous error: ENOENT: no such file or directory, open '/Projects/MyApp/tscode/package.json
有什么想法吗?
节点版本:v5.10.1 npm 版本:3.8.5
注意:无论操作系统,我团队中的每个人都会发生这种情况。
更新: 似乎 npm 存在错误。 npm 存储库中有一些未解决的问题,例如:
https://github.com/npm/npm/issues/9633 https://github.com/npm/npm/issues/10004如果有什么变化,我会用答案更新问题(如果提供)
【问题讨论】:
运行npm命令时,你的工作目录是不是你项目的根目录? 是的,我在根文件夹中。 如果你运行npm list --depth=0
会发生什么?
【参考方案1】:
试试这个:
Delete node_modules folder
然后运行:
$ npm cache clean
$ npm install
【讨论】:
以上是关于为啥 npm 试图在错误的目录中找到 package.json?的主要内容,如果未能解决你的问题,请参考以下文章
NPM 启动错误上的 ENOENT。为啥我会收到此错误,为啥要查找“我的图片”目录?
由于 npm 未导航到不正确的目录,无法运行服务器。并找到 package.jason
为啥 webpack 在运行 npm run dev 时会报错