javascript - instalar - package.json que es
Cómo encontrar la dependencia node-gyp(... o cualquier dependencia) en el proyecto npm (4)
node-gyp es obligatorio para natice C / C ++ Add ons como se menciona en el documento aquí
Las dependencias se crean en cada plataforma de destino. Para las plataformas de Windows requiere Visual Studio como se menciona en sus notas de instalación aquí
node-gyp
no se menciona en package.json
(probablemente porque requiere instalación global), así que deberá ver manualmente si alguna de las dependencias o sus dependencias anidadas están usando complementos c / c ++ nativos, ya sea por su repo o fuente descargada código o el registro de instalación npm en sí. Una de las formas podría estar en la búsqueda de carpeta npm_modules para archivos binding.gyp
o .cc/.cpp
, y debería poder localizar el módulo culpable npm.
Estoy pasando por una frustración inimaginable tratando de ejecutar un proyecto (es decir, llamando a ''npm install'' ) que siempre tropieza con node-gyp . Estoy en Windows, así que necesito instalar Python y algo así como Visual Studio.
Para resumir, no quiero tener una dependencia en un montón de mierda *** como Visual Studio, así que quiero ver si de alguna manera este nodo-gyp podría ser de alguna manera opcional, o deshacerse de él.
Ahora si abro mi archivo package.json, encuentro estas dependencias.
"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"
}
Puedo ver el árbol de dependencias de cada uno de estos paquetes yendo aquí:
Sin embargo, si reviso cada una de estas dependencias, no puedo ver la dependencia node-gyp en ninguna parte para ninguna de estas.
¿Hay algo que no entiendo acerca de las dependencias? ¿Qué usa node-gyp? ¿Y por qué?
npm ls
enumera las dependencias instaladas en su proyecto. npm ls node-gyp
.
npm-remote-ls
enumera todas las dependencias de un paquete remoto. Usted pasa manualmente o usa grep
findep
que es mucho más rápido que los dos (para este propósito). Puede verificar su proyecto local, un paquete npm externo o incluso un proyecto github remoto, y tiene una opción --greedy
que se detiene tan pronto como encuentra la dependencia especificada.
# 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
Para encontrar sus dependencias
npm ls node-gyp
node-gyp
se utiliza para compilar módulos de complemento nativos para el nodo. ¿Has echado un vistazo a la documentación aquí , en particular a la información de Windows? Además, eche un vistazo a esta pregunta para evitar el requisito de Visual Studio