2016-01-22 91 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 = V5.4.1
  • NPM版本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