![](/img/trans.png)
[英]node_modules directory not created when using npm install during AWS CodeBuild
[英]How to ignore scoped packages' node_modules/ directory during npm install?
我有一個包含package.json
的存儲庫,其中包含范圍內的依賴項。 我還有一個.npmignore
文件,打算將dist/
所有文件和子目錄列入白名單。 問題是在運行npm install @private/a
另一個存儲庫時,包括了所有作用域的依賴項。 這包括私有npm軟件包和公共軟件包,例如@uirouter。
package.json:
{
"name": "@private/a",
"version": "1.0.0",
"description": "",
"main": "dist/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+ssh://git@bitbucket.org/private/a.git"
},
"author": "",
"license": "ISC",
"homepage": "https://bitbucket.org/private/a#readme",
"devDependencies": {
"gulp": "^3.9.1",
"gulp-angular-embed-templates": "^2.3.0",
"gulp-concat": "^2.6.1",
"gulp-jshint": "^2.0.4",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.0.0",
"gulp-uglify": "^2.0.0",
"jshint": "^2.9.4"
},
"dependencies": {
"@private/b": "^1.0.0",
"@private/c": "^1.0.0"
}
}
.npmignore
**
!dist/**
盡管有這兩個文件,當我在另一個存儲庫中運行npm install @private/a --save
,它npm install @private/a --save
安裝依賴項及其所有范圍內的依賴項:
/node_modules/@private/a/dist/index.js
/node_modules/dist/css/styles.css
/node_modules/@private/a/node_modules/@private/b
/node_modules/@private/a/node_modules/@private/c
package.json
只能是這樣:
/node_modules/@private/a/dist/index.js
/node_modules/dist/css/styles.css
package.json
我該如何實現? 我嘗試過.npmignore
不同變體,但沒有任何運氣。
.npmignore
與您要執行的操作無關。 該文件僅決定您的npm軟件包代碼的哪些部分最終出現在npm注冊表中。 因此,它按廣告宣傳工作。
您的問題可能出在您的npmconfig中,或者是因為使用的是npm的舊版本。 最新版本的安裝方式如下:
/node_modules/@private/a/dist/index.js
/node_modules/@private/b/...
/node_modules/@private/c/...
package.json
我已經驗證了最新的npm正在發生這種情況。 但是曾經有一段時間npm將依賴項安裝到嵌套結構中。 例如參見。 所以我建議:
npm get legacy-bundling
。 確保這是錯誤的。 在少數情況下,即使使用最新的npm,依存關系的嵌套也會合法發生。 看到這個 。 但是我猜你的問題不是由於這個。 您只需在一個空文件夾中執行npm install @private/a
即可進行測試。
Node將安裝您的軟件包文件以及在dependencies
字段下聲明的所有dependencies
。
依賴關系樹的構建方式取決於您使用的npm
版本。
如果您的程序包不需要運行這些依賴項,則意味着它們只是開發依賴項,您可以在devDependencies
字段中安全地列出它們。
僅在插件目錄中運行npm install
時才安裝Dev依賴項。
您需要鎖定依賴性。 您可能要簽出npm shrinkwrap
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.