如何在npm项目中找到node-gyp依赖项(..或任何依赖项)

时间:2015-11-25 10:29:41

标签: javascript node.js npm gulp node-gyp

我正在经历一个难以想象的挫折,试图让一个项目运行(即通过调用'npm install')总是跳过 node-gyp 。我在Windows上,所以我需要安装python和Visual Studio之类的东西。

长话短说...我不想依赖于像Visual Studio这样的恶作剧,所以我想知道这个节点gyp是否可以某种方式是可选的,或者被摆脱的。

现在,如果我打开我的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 个答案:

答案 0 :(得分:2)

nat p C / C ++ Add需要

node-gyp,如文档here

中所述

依赖关系构建在每个目标平台上。对于Windows平台,它需要在installation notes here

中提到的visual studio node-gyp本身没有提到

package.json(可能是因为它需要全局安装),因此,您必须手动查看是否有任何依赖项或其嵌套依赖项使用本机c / c ++ add ons通过他们的repo或下载的源代码或npm安装日志本身。一种方法是在npm_modules文件夹中搜索文件binding.gyp.cc/.cpp文件,你应该能够找到罪魁祸首npm模块。

答案 1 :(得分:2)

查找其依赖项

npm ls node-gyp

答案 2 :(得分:1)

npm ls列出了项目中已安装的依赖项。 npm ls node-gyp将限制node-gyp的子树。

npm-remote-ls列出了远程包的所有依赖项。您可以手动浏览或使用grep

我创建了findep,这比两者都要快得多(为此目的)。它可以检查您的本地项目,外部npm包,甚至是远程github项目,并且--greedy选项在找到指定的依赖项后立即停止。

# Checks if current project has a 'node-gyp' dependency
findep node-gyp

# Checks if the npm package 'node-sass' has a 'node-gyp' dependency
findep node-gyp -e node-sass

# Greedily checks if the project 'AngularClass/angular2-webpack-starter' has at least one of these dependencies including "devDependencies":
$ findep he mime lodash ms -GDr -e AngularClass/angular2-webpack-starter
Looking for [he, mime, lodash, ms] in AngularClass/angular2-webpack-starter...
Found 16 dependencies that use [he, mime, lodash, ms]:
assets-webpack-plugin > lodash
string-replace-loader > lodash
karma-coverage > lodash

答案 3 :(得分:0)

node-gyp用于编译节点的本机插件模块。你有没看过文档here,特别是windows信息?另外,请查看this question以了解Visual Studio需求