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

jm81lzqq  于 2022-12-08  发布在  Gulp
关注(0)|答案(4)|浏览(292)

我正在经历难以想象的挫折,试图让一个项目运行(即通过调用**'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?为什么?

vwoqyblh

vwoqyblh1#

如文档here中所述,node-gyp对于本机C/C附加组件是必需的
依赖项是在每个目标平台上构建的。对于windows平台,它需要visual studio,如在这里的安装说明中所提到的
node-gyp本身未在package.json中提及(可能是因为它需要全局安装)所以,你必须手动查看是否有依赖项或其嵌套依赖项正在使用本地c/c
插件,或者通过它们的repo或下载的源代码,或者npm安装日志本身。一种方法是在npm_modules文件夹中搜索文件binding.gyp.cc/.cpp文件,并且您应该能够找到有问题的npm模块。

btqmn9zl

btqmn9zl2#

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
bsxbgnwa

bsxbgnwa3#

查找其依赖项

npm ls node-gyp
wmomyfyw

wmomyfyw4#

node-gyp用于编译节点的本机附加模块。您看过这里的文档了吗,尤其是windows信息?另外,还可以查看this question,了解如何绕过Visual Studio要求

相关问题