2016-01-22 3 views
1

Я принял проект NodeJS, где для удобства были помещены некоторые символические ссылки в каталоге node_modules, который контролировался версией (только с символическими ссылками, а не с любыми пакетами).npm install - сохранить существующие файлы в node_modules

При запуске npm install для установки пакетов весь каталог заменяется, и эти файлы удаляются, в результате чего скрипт запускается после завершения установки, поскольку он зависит от существующих файлов.

"dependencies": {}, 
    "scripts": { 
    "prepublish": "deployment/prepublish" 
    }, 
    "devDependencies": { 
    "browserify": "^9.0.8", 
    "bulk-require": "^0.2.1", 
    "bulkify": "^1.1.1", 
    "deasync": "^0.1.4", 
    "del": "^1.1.1", 
    "gulp": "^3.8.11", 
    "gulp-angular-gettext": "^2.1.0", 
    "gulp-compass": "^2.0.4", 
    "gulp-concat": "^2.5.2", 
    "gulp-merge": "^0.1.0", 
    "gulp-replace": "^0.5.3", 
    "gulp-rev-all": "^0.8.18", 
    "gulp-uglify": "^1.2.0", 
    "gulp-util": "^3.0.4", 
    "gulp-watch": "^4.2.4", 
    "jshint": "*", 
    "lodash": "*", 
    "merge-stream": "^0.1.7", 
    "q": "*", 
    "request": "*", 
    "run-sequence": "^1.0.2", 
    "stringify": "^3.1.0", 
    "vinyl-buffer": "^1.0.0", 
    "vinyl-source-stream": "^1.1.0", 
    "vinyl-transform": "^1.0.0" 
    } 

Как убедиться, что эти файлы сохраняются на npm install? Я знаю, что это использовалось для работы в более ранних версиях npm, но я ничего не видел в списках изменений.

  • NodeJS Version = v5.4.1
  • NPM Version = 3.3.12

Заранее спасибо за помощь!

ответ

0

При запуске npm install он проверит файл package.json и попытается установить любые перечисленные ниже зависимости, которые еще не установлены в каталог node_modules. Если в списке нет зависимостей, он заменяет весь каталог node_modules.

Чтобы сохранить файлы в каталоге node_modules, вы можете сделать следующее:

  1. Установите модуль и он добавляется в список dependencies в package.json.
  2. Переместите файлы символической ссылки в папку модуля.
+0

Я действительно не понял ваш ответ - я добавил больше package.json, чтобы вы могли видеть, что происходит. Я понимаю, что я просто показываю «зависимости» как пустой объект, мог ввести в заблуждение. Это средство сборки на передней панели, поэтому все зависимости требуются только для dev. – iamyojimbo

+0

Мне нужно, чтобы я добавил дополнительную информацию или ваш ответ все еще стоит? – iamyojimbo

+0

Вам не нужно добавлять дополнительную информацию. Я сейчас изучаю проблему. – gnerkus