2015-11-25 28 views
5

ja przeżywałam niewyobrażalnej frustracji próbuje projektu do uruchomienia (tj. Poprzez wywołanie „npm install”), które zawsze fauluje węzeł-gyp. Jestem w systemie Windows, więc muszę zainstalować Pythona i coś takiego jak Visual Studio.Jak znaleźć zależność węzłów Gyp (..or jakąkolwiek zależność) w projekcie npm

Długa historia krótka ... Nie chcę mieć uzależnienia od gnijących stert s *** jak Visual Studio, więc chcę zobaczyć, czy jakoś ten węzeł-gyp mógłby jakoś być opcjonalny, lub zostać zdobyty pozbyć się.

Teraz, jeśli otworzę mój plik package.json, znajduję te zależności.

"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" 
    } 

widzę drzewa zależności każdego z tych pakietów, przechodząc tutaj:

http://npm.anvaka.com/#/

Jednak jeśli pójdę za każdym z tych zależności nie widzę zależność węzłów Gyp w dowolnym miejscu dla dowolnego z nich.

Czy jest coś, czego nie rozumiem na temat zależności? Co używa node-gyp? I dlaczego?

Odpowiedz

0

node-gyp służy do kompilowania rodzimych modułów dodatkowych dla węzła. Czy obejrzałeś dokumentację here, w szczególności informacje o systemie Windows? Również spojrzeć na this question sposobu wokół wymogu Visual Studio

2

węzła gyp jest wymagany dla natice C/C++ dodać dodatki, jak wspomniano w dokumencie here

Zależności są zbudowane na każdej platformie docelowej. Na platformach Windows wymaga visual studio jak wspomniano w ich installation notes here

node-gyp nie jest sama w sobie wymienione w package.json (prawdopodobnie dlatego, że wymaga globalnych instalacji) tak, trzeba będzie ręcznie sprawdzić, czy któryś z zależnościami lub jej zagnieżdżonych zależności używasz rodzimy Dodatki c/C++ albo przez ich repozytorium lub pobrany kod źródłowy lub sam dziennik instalacji npm. Jednym ze sposobów może być wyszukiwanie w plikach npm_modules plików binding.gyp lub .cc/.cpp, a powinieneś być w stanie zlokalizować moduł npm winowajca.

1

npm ls zawiera listę zainstalowanych zależności w projekcie. npm ls node-gyp ograniczy pod-drzewo węzła-gyp.

npm-remote-ls zawiera listę wszystkich zależności zdalnego pakietu. Użytkownik ręcznie przechowuje lub używa grep , który jest dużo szybszy niż oba (do tego celu). Może sprawdzić twój lokalny projekt, zewnętrzny pakiet npm lub nawet zdalny projekt Github i ma opcję --greedy, która zatrzymuje się, gdy tylko znajdzie określoną zależność.

# 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 
2

znaleźć jego zależnościami

npm ls node-gyp 
+0

Bardzo proste rozwiązanie, dzięki! –