2015-11-19 13 views
10

My package.json:Zbyt wiele modułów NPM są zainstalowane po execute „npm install”

{ 
    "name": "thumbnaillist-gulp", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC", 
    "dependencies": { 
    "browserify": "^12.0.1", 
    "gulp": "^3.9.0", 
    "gulp-concat": "^2.6.0", 
    "gulp-react": "^3.1.0", 
    "gulp-util": "^3.0.7", 
    "react": "^0.13.3", 
    "react-script-loader": "0.0.1", 
    "reactify": "^1.1.1", 
    "vinyl-source-stream": "^1.1.0", 
    "watchify": "^3.6.1" 
    } 
} 

Najdziwniejsze jest to, że po tym, jak wykonać „npm install”, oprócz modułów wymienionych w dziedzinie uzależnień, inne moduły są również zainstalowany, na przykład:

drwxr-xr-x 14 xxx wheel 476B Nov 18 18:41 acorn 
drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 amdefine 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 ansi-green 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 ansi-regex 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 ansi-styles 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 ansi-wrap 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 anymatch 
drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 archy 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 arr-diff 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 arr-flatten 
drwxr-xr-x 5 xxx wheel 170B Nov 18 18:41 array-differ 
drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 array-filter 
drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 array-map 
drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 array-reduce 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 array-slice 
drwxr-xr-x 5 xxx wheel 170B Nov 18 18:41 array-uniq 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 array-unique 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 arrify 
drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 asn1.js 
drwxr-xr-x 10 xxx wheel 340B Nov 18 18:41 assert 
drwxr-xr-x 10 xxx wheel 340B Nov 18 18:41 ast-types 
drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 astw 
drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 async-each 
drwxr-xr-x 11 xxx wheel 374B Nov 18 18:41 balanced-match 
drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 base62 
drwxr-xr-x 9 xxx wheel 306B Nov 18 18:41 base64-js 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 beeper 
drwxr-xr-x 6 xxx wheel 204B Nov 18 18:41 binary-extensions 
drwxr-xr-x 10 xxx wheel 340B Nov 18 18:41 bn.js 
drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 brace-expansion 
drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 braces 
drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 brorand 
drwxr-xr-x 13 xxx wheel 442B Nov 18 18:41 browser-pack 
drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 browser-resolve 
drwxr-xr-x 12 xxx wheel 408B Nov 18 18:41 browserify 
drwxr-xr-x 17 xxx wheel 578B Nov 18 18:41 browserify-aes 
drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 browserify-cipher 
drwxr-xr-x 7 xxx wheel 238B Nov 18 18:41 browserify-des 
drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 browserify-rsa 
drwxr-xr-x 16 xxx wheel 544B Nov 18 18:41 browserify-sign 
drwxr-xr-x 8 xxx wheel 272B Nov 18 18:41 browserify-zlib 
drwxr-xr-x 11 xxx wheel 374B Nov 18 18:41 buffer 
drwxr-xr-x 11 xxx wheel 374B Nov 18 18:41 buffer-xor 

Jakieś wskazówki na ten temat? Czy mój NPM jest zepsuty? Lub nie napisałem prawidłowo w package.json.

Odpowiedz

15

Nie ma nic złego, NPM instaluje teraz wszystkie zależności w folderze modułów głównych, chyba że wystąpi konflikt wersji. Wszystkie pozostałe moduły, które widzisz, są zależne od zainstalowanych modułów.

Z NPM 3.0.0 release notes:

Twoje zależności zostanie zainstalowany maksymalnie płaska. O ile to możliwe, wszystkie zależności i zależności między nimi i IMI zostaną zainstalowane w folderze node_mulules projektu bez zagnieżdżania. Zobaczysz tylko moduły zagnieżdżone pod sobą, gdy dwa (lub więcej) moduły mają sprzeczne zależności.

+0

Cześć, Alex: Dzięki. Wygląda na to, że NPM chce sprawić, żeby wszystko było czyste i niezależne? To sprawia, że ​​moje kilka projektów testowych jest duże.^_ ^. –

+0

Dzięki za wyjaśnienie tego @Alexander. Zastanawiam się, jaka jest korzyść polegająca na przechowywaniu wszystkich zależności wewnątrz projektu zamiast buforowania tych, które nie są "specyficzne dla projektu" w katalogu tymczasowym ... – tftd

+0

Wstawiłem pakiet sieci Web do katalogu node_modules za pomocą 'npm install webpack', a następnie otrzymam 341 pakietów . czy miałeś na myśli pakiet webowy, który zależy od 341 pakietów? – inherithandle

1

Mam nadzieję Alexander O'Mara odpowiedź jest pomocne dla Ciebie, jeśli nadal chcą lub dla tych, którzy chcą korzystać z zależnościami jak starszej wersji

można użyć

KMP zainstalować --legacy- łączenie

Jeśli zawsze chcesz używać

npm ustawić legacy-pakietowa = true

i stosowanie może działać jak zwykle

npm zainstalować

Powiązane problemy