我正在经历难以想象的挫折,试图让一个项目运行(即通过调用**'npm install'),总是绊倒node-gyp**。我在Windows上,所以我需要安装python和类似Visual Studio的东西。
长话短说......我不想依赖像Visual Studio这样的一堆腐烂的东西,所以我想看看这个节点是否可以是可选的,或者可以被去掉。
现在,如果我打开我的package.json文件,我会发现这些依赖项。
"devDependencies": {
"autoprefixer-stylus": "^0.7.1",
"browser-sync": "^2.8.2",
"gulp": "^3.9.0",
"gulp-cache": "^0.3.0",
"gulp-concat": "^2.6.0",
"gulp-if": "^1.2.5",
"gulp-imagemin": "^2.3.0",
"gulp-minify-html": "^1.0.4",
"gulp-nunjucks-html": "^1.2.2",
"gulp-order": "^1.1.1",
"gulp-plumber": "^1.0.1",
"gulp-stylus": "^2.0.6",
"gulp-uglify": "^1.2.0",
"gulp-util": "^3.0.6",
"jeet": "^6.1.2",
"kouto-swiss": "^0.11.13",
"minimist": "^1.1.3",
"rupture": "^0.6.1"
},
"dependencies": {
"gulp-install": "^0.6.0"
}
我可以查看每个软件包的依赖关系树,方法是:
http://npm.anvaka.com/#/
然而,如果我检查这些依赖项中的每一个,我在任何地方都看不到node-gyp依赖项。
关于依赖关系,我有什么不明白的地方吗?什么使用node-gyp?为什么?
4条答案
按热度按时间vwoqyblh1#
如文档here中所述,node-gyp对于本机C/C附加组件是必需的
依赖项是在每个目标平台上构建的。对于windows平台,它需要visual studio,如在这里的安装说明中所提到的
node-gyp
本身未在package.json
中提及(可能是因为它需要全局安装)所以,你必须手动查看是否有依赖项或其嵌套依赖项正在使用本地c/c插件,或者通过它们的repo或下载的源代码,或者npm安装日志本身。一种方法是在npm_modules文件夹中搜索文件binding.gyp
或.cc/.cpp
文件,并且您应该能够找到有问题的npm模块。btqmn9zl2#
npm ls
列出项目中已安装的依赖项。npm ls node-gyp
将限制node-gyp的子树。npm-remote-ls
列出了远程软件包的所有依赖项。您可以手动完成或使用grep
我创建了
findep
,它比这两个都快得多(为了这个目的),它可以检查你的本地项目,一个外部npm包,甚至一个远程github项目,并且有一个--greedy
选项,一旦它发现指定的依赖关系就停止。bsxbgnwa3#
查找其依赖项
wmomyfyw4#
node-gyp
用于编译节点的本机附加模块。您看过这里的文档了吗,尤其是windows信息?另外,还可以查看this question,了解如何绕过Visual Studio要求