用package.json来管理NPM里面的依赖包

作者 happyWang 日期 2014-07-12 Views
用package.json来管理NPM里面的依赖包

很久之前

开发前端项目(基于grunt),每新建一个项目,总是先用npm init来初始化一个package.json,然后就是一遍又一遍的

npm install grunt-contrib-less --save-dev
npm install grunt-contrib-concat --save-dev
npm install grunt-contrib-requirejs --save-dev
npm install grunt-contrib-uglify --save-dev

在进行版本控制的时候,以git为例,为了让项目组成员能拥有正确的开发环境,得git add node_modules,把里面所有的包都加入版本控制。一提交就是一大tuo,要是添加新的包,或者更新包,其他成员更新的时候,也是一堆。

新的能力 Get!

如果你有个新的项目,还没有下载过任何的npm包,而需要的npm包跟前一个项目差不多。那么,你可以把这个项目里面的package.json拷贝到当前项目根目录。然后npm install,所有的依赖包就会自动的下载完毕了!

现在

一个好的开发项目流程可以是这样:有一份好的前端项目开发模版,里面的目录可能是这样

src/
    css/
    js/
    img/
    less/

dist/
    css/
    js/
    img/
    less/

index.html
index-dev.html

doc/
    xxx.psd

package.json
Gruntfile.js
.gitignore

package.json里面有基本的包依赖

{
  "name": "my-project-name",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-jshint": "~0.6.0",
    "grunt-contrib-nodeunit": "~0.2.0",
    "grunt-contrib-uglify": "~0.2.2"
  }
}

.gitignore里面添加了node_modules/

每次新建项目就可以拷贝这份模版,然后初始化,加入版本库,提交。项目其他成功,更新到本地之后,同样的初始化就可以了