如何通过`npm install`安装必要的包

时间:2016-01-15 03:43:06

标签: npm

我在package.json中有以下内容。

{
  "private": true,
  "devDependencies": {
    "gulp": "^3.8.8"
  },
  "dependencies": {
    "laravel-elixir": "^4.0.0",
    "bootstrap-sass": "^3.0.0"
  }
}

检查node_modules后运行npm install后,安装了很多软件包。从.bin,缩写到酵母。我认为有超过200个包。我认为npm只安装必要的包,包括依赖项。

问题1:如何避免安装不必要的软件包并仅安装必要的软件包。我可以做吗?或者我需要所有包裹吗?

Q2:npm install所有npm包裹吗?

1 个答案:

答案 0 :(得分:3)

<强>要点:

  

Q1:如何避免安装不必要的软件包并进行安装   只有必要的包。我可以做吗?或者我需要所有包裹吗?

您正在安装模块依赖项所需的所有依赖项(需要模块的模块)。

  

Q2:npm是否安装了所有npm包?

没有

深度:

你安装了gulp。这是gulp的依赖:

"dependencies": {
    "archy": "^1.0.0",
    "chalk": "^1.0.0",
    "deprecated": "^0.0.1",
    "gulp-util": "^3.0.0",
    "interpret": "^1.0.0",
    "liftoff": "^2.1.0",
    "minimist": "^1.1.0",
    "orchestrator": "^0.3.0",
    "pretty-hrtime": "^1.0.0",
    "semver": "^4.1.0",
    "tildify": "^1.0.0",
    "v8flags": "^2.0.2",
    "vinyl-fs": "^0.3.0"
  }

archy具有以下依赖项:

"dependencies": {
    "ansi-styles": "^2.1.0",
    "escape-string-regexp": "^1.0.2",
    "supports-color": "^3.1.2"
  },

解释(仍然通过gulp依赖项)具有以下依赖项:

"dependencies": {
    "extend": "^2.0.1",
    "findup-sync": "^0.3.0",
    "flagged-respawn": "^0.3.1",
    "rechoir": "^0.6.0",
    "resolve": "^1.1.6"
  }

liftoff具有以下依赖关系:

"dependencies": {
    "extend": "^2.0.1",
    "findup-sync": "^0.3.0",
    "flagged-respawn": "^0.3.1",
    "rechoir": "^0.6.0",
    "resolve": "^1.1.6"
  }

orchestrator需要以下依赖项:

"dependencies": {
    "end-of-stream": "~0.1.5",
    "sequencify": "~0.0.7",
    "stream-consume": "~0.1.0"
  },

...

简而言之......您安装的更大,更依赖的模块,需要的依赖性越多。这并不总是坏事。我建议只安装你需要完成的工作所需要的东西(有时很多,有时候不是)。

<强>更新

我刚注意到gulp是一个dev-dependency ...继续使用elixir非dev依赖:

"dependencies": {
    "babelify": "^7.2.0",
    "browser-sync": "^2.7.10",
    "browserify": "^11.2.0",
    "del": "^1.2.0",
    "glob": "^5.0.14",
    "gulp-autoprefixer": "^2.3.1",
    "gulp-babel": "^6.1.0",
    "babel-preset-es2015": "^6.1.0",
    "babel-preset-react": "^6.1.18",
    "gulp-batch": "^1.0.5",
    "gulp-coffee": "^2.3.1",
    "gulp-concat": "^2.6.0",
    "gulp-cssnano": "^2.0.0",
    "gulp-if": "^1.2.5",
    "gulp-less": "^3.0.3",
    "gulp-load-plugins": "^1.0.0-rc.1",
    "gulp-notify": "^2.2.0",
    "gulp-phpspec": "^0.5.3",
    "gulp-phpunit": "0.11.x",
    "gulp-rename": "^1.2.2",
    "gulp-rev": "^5.1.0",
    "gulp-rev-replace": "^0.4.2",
    "gulp-sass": "^2.0.3",
    "gulp-sourcemaps": "^1.5.2",
    "gulp-shell": "^0.5.0",
    "gulp-uglify": "^1.4.2",
    "gulp-util": "^3.0.6",
    "gulp-watch": "^4.2.4",
    "insert-css": "^0.2.0",
    "merge-stream": "^0.1.8",
    "parse-filepath": "^0.5.0",
    "partialify": "^3.1.3",
    "path": "^0.11.14",
    "require-dir": "^0.3.0",
    "run-sequence": "^1.1.1",
    "underscore": "^1.8.3",
    "underscore-deep-extend": "0.0.5",
    "vinyl-buffer": "^1.0.0",
    "vinyl-paths": "^1.0.0",
    "vinyl-source-stream": "^1.1.0",
    "watchify": "^3.2.3"
  },

...