每个项目的根目录下面,一般都会有package.json文件,定义了这个项目中所需各种模板及项目中的配置信息。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目中所需的运行和开发环境。
仔细观察package.json文件可以发现其内部就是一个json对象,该对象的每一个成员就是当前项目的一项设置。
package.json可配置项
name:项目名称
deecription:应用项目描述
version 版本号
config:应用的配置项
author:作者
respository:资源仓库地址
licenses:授权方式
directories:目录
main:应用入口文件
bin:命令行文件
dependencries:项目应用运行依赖模块
devDependencies:项目应用开发环境依赖
engines:运行引擎,指明node.js运行所需要的版本
script:脚本
完整配置
-
{
-
//项目名称
-
"name": "demo",
-
//版本号(遵守“主版本.次要版本.补丁号”的格式
-
"version": "1.0.0",
-
//description描述你的模块,或者搜索
-
"description": "vue.js js iview ",
-
//main字段指定了加载的入口文件,即主文件
-
"main": "app.js",
-
// scripts指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm start时,所要执行的命令。
-
"scripts": {
-
"start": "node index.js"
-
},
-
//repository(仓库)指定一个代码存放地址
-
"repository": {
-
"type": "git",
-
"url": "git+https://github.com/XXXX"
-
},
-
//作者
-
"author": "mayuan",
-
//授权方式
-
"license": "MIT",
-
//指明node.js运行所需要的版本
-
"engines": {
-
"node": "0.10.x"
-
},
-
"bugs": {
-
"url": "https://github.com/XXXX"
-
},
-
// 一个字符串数组,方便别人搜索到本模块
-
"keywords": [
-
"vue","iview"
-
],
-
//devDependencies指定项目开发所需要的模块
-
"devDependencies": {
-
"babel-core": "^6.23.1",
-
"babel-loader": "^6.3.2",
-
"babel-preset-es2015": "^6.22.0",
-
"vue-html-loader": "^1.0.0",
-
"vue-loader": "^8.5.2",
-
"vue-style-loader": "^1.0.0",
-
"webpack": "^1.13.2"
-
},
-
//dependencies字段指定了项目运行所依赖的模块
-
"dependencies": {
-
"express": "latest", //指定express是最新版本
-
"mongoose": "~3.8.3",
-
"handlebars-runtime": "~1.0.12",
-
"express3-handlebars": "~0.5.0",
-
"MD5": "~1.2.0"
-
}
-
}
有了package.json文件,直接使用npm install命令,就会在当前目录中安装所需要的模块
npm install
如果一个模块不在package.json文件之中,可以单独安装这个模块,并使用相应的参数,将其写入package.json文件之中。以加载“ejs”模块为例
-
npm install ejs --save
-
npm install ejs --save-dev
上面代码表示单独安装ejs模块。--save表示将该模块写入dependencies属性,--save -dev表示将该模块写入devDependencies属性。同时省略则表示不写入package.json文件中。
补充:
模板下载之后可以视图访问各个模块版本及最新版本。我是采用webstorm打开项目的,具体操作如下
1、选择File->settings->Languages&Frameworks->Node.js and NPM
当然,这的大前提是需要你在webstorm中配置node.js信息。
版本号
表达式 | 版本范围 |
>=1.2.7 | 大于等于1.2.7 |
>=1.2.7 <1.3.0 | 1.2.7,1.2.8,1.2.9 |
1.2.3-2.3.4 | >=1.2.3 <=2.3.4 |
1.2-2.3.4 | >=1.2.0 <=2.3.4 |
1.2.3-2.3 | >=1.2.3 <2.4.0 |
1.2.3-2 | >=1.2.3 <3.0.0 |
* | >=0.0.0 |
1.x(等价于1.X) | >=1.0.0 <2.0.0 |
1.2.x | >=1.2.0 <3.0.0 |
""(等价于*) | >=0.0.0 |
1(等价于1.x.x) | >=1.0.0.0 <2.0.0 |
1.2(等价于1.2.x) | >=1.2.0 <1.3.0 |
~1.2.3(>=1.2.3 <1.(2+1).0) | >=1.2.3 <1.3.0 |
~1.2(>=1.2.0 <1.(2+1).0) | >=1.2.0 <1.3.0 |
~1(>=1.0.0 <(1+1).0.0) | >=1.0.0 <2.0.0 |
~0.2.3(>=0.2.3 <0.(2+1).0) | >=0.2.3 <0.3.0 |
~0.2(>=0.2.0 <0.(2+1).0) | >=0.2.0 <0.3.0 |
~9(>=0.0.0 <(0+1).0.0) | >=0.0.0 <1.0.0 |
~1.2.3-beta.2 | >=1.2.3-beta.2 <1.3.0 |
^1.2.3 | >=1.2.3 <2.0.0 |
^0.2.3 | >=0.2.3 <0.3.3 |
^0.0.3 | >=0.0.3 <0.0.4 |
^1.2.3-beta.2 | >=1.2.3-beta.2 <2.0.0 |
^0.0.3-beta | >=0.0.3 <0.0.4 |
^1.2.x | >=1.2.0 <2.0.0 |
^0.0.x | >=0.0.0 <0.1.0 |
^0.0 | >=0.0.0 <0.1.0 |
^1.x | >=1.0.0 <2.0.0 |
^0.x | >=0.0.0 <1.0.0 |
创建项目可查看http://blog.csdn.net/hh12211221/article/details/77555344
app.js详解可查看http://blog.csdn.net/hh12211221/article/details/77570555
demo示例可查看http://blog.csdn.net/hh12211221/article/details/77573292