2015-12-29 2 views
0

Когда я использую npm install базу package.json файла, он устанавливает 337 библиотек:/ Вот мой файл пакетаНПМ установка большого количества библиотек

{ 
    "name": "system_glowna", 
    "version": "2.0.0", 
    "dependencies": { 
    "angular2": "^2.0.0-beta.0", 
    "bootstrap": "^3.3.6", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.0", 
    "systemjs": "0.19.6", 
    "zone.js": "0.5.10" 
    }, 
    "devDependencies": { 
    "del": "^1.2.0", 
    "gulp": "^3.8.11", 
    "gulp-autoprefixer": "^2.2.0", 
    "gulp-concat": "^2.5.2", 
    "gulp-inject": "^1.2.0", 
    "gulp-less": "^3.0.3", 
    "gulp-load-plugins": "^0.10.0", 
    "gulp-minify-css": "^1.1.6", 
    "gulp-minify-html": "^1.0.3", 
    "gulp-rename": "^1.2.2", 
    "gulp-replace": "^0.5.3", 
    "gulp-uglify": "^1.2.0", 
    "gulp-watch": "^4.2.4", 
    "run-sequence": "^1.1.0" 
    } 
} 

Почему устанавливающим так много библиотек? Как их ограничить?

ответ

5

npm до версии 3.x устанавливает библиотеки в древовидной структуре, поэтому каждая библиотека имеет свои собственные node_modules и так далее. Это может привести (или почти всегда ведет) к дублированию библиотек внутри разных пакетов node_modules и привести к довольно большой папке node_modules. Все становится сложным, например. в Windows, когда пути могут быть слишком длинными, чтобы удалить node_modules легко после.

Однако после выпуска версии 3.x по умолчанию 3.x он использует плоскую структуру папок по умолчанию и только в случае конфликта, он устанавливает правильные версии для каждой библиотеки.

Примечание к себе - тот факт, что НПМ устанавливает так много библиотек необходимо для того, чтобы каждая библиотека для правильной работы :)

+0

И это моя проблема. Я обновил npm и угадал, что теперь он использует плоскую структуру папок, и поэтому я, хотя что-то не так. – piernik

2

Вы сказали ему установить довольно большое количество библиотек. Каждая из этих библиотек имеет свои собственные зависимости, необходимые для запуска этой библиотеки. Вы не можете ограничить или предотвратить это, если только вы не хотите использовать эту библиотеку.

Обратите внимание, что установка множества библиотек сама по себе не является проблемой.

+0

И я могу установить отл. библиотеки глотков во всем мире? Значит, они не будут включены в проект? – piernik

+0

@piernik конечно, но имейте в виду, что любой, кто использует проект, должен будет сделать то же самое. Это (одна из причин), почему локальная локализация предпочтительнее во всем мире: существует гораздо более низкий риск проблем «но это работает на моей машине». –

Смежные вопросы