Mam repozytorium zawierające package.json
, które zawiera zależności zakresowe. Mam również plik .npmignore
przeznaczony do umieszczenia na białej liście wszystkich plików i podkatalogów w dist/
. Problem polega na tym, że wszystkie zakresy zależności są uwzględniane podczas uruchamiania kolejnego repozytorium. Obejmuje to zarówno prywatne pakiety npm, jak i publiczne pakiety, takie jak @uirouter.Jak zignorować pakiety węzłów node_modules/katalog podczas instalacji npm?
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://[email protected]/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/**
Pomimo tych dwóch plików Kiedy uruchamiam npm install @private/a --save
w innym repozytorium jest instalowany wraz z uzależnienia wszystko to lunetą zależności:
/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
To powinno być tylko to:
/node_modules/@private/a/dist/index.js
/node_modules/dist/css/styles.css
package.json
Jak mogę to osiągnąć? Próbowałem różnych odmian .npmignore
, ale nie miałem szczęścia.
Czy '@ prywatny/b' i' @ prywatny/c' są wymagane do uruchomienia pakietu '@ private/a'? – vsenko
Czy są one wymagane tylko podczas rozwoju i budowania '@ private/a'? – vsenko