一、初步理解
3. 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install 命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
4. package.json文件可以手工编写,也可以使用npm init命令自动生成。
{
"name"
:
"kocla_test"
,
"version"
:
"1.0.0"
,
}
2.scripts
指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。
下面的设置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint时,所要执行的命令。
"scripts"
: {
"dev"
:
"node build/dev-server.js"
,
"build"
:
"node build/build.js"
,
"unit"
:
"cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run"
,
"test"
:
"npm run unit"
,
"lint"
:
"eslint --ext .js,.vue src test/unit/specs"
},
3 dependencies,devDependencies
dependencies和devDependencies两项,分别指定了项目运行所依赖的模块、项目开发所需要的模块。它们都指向一个对象,该对象的各个成员,分别由模块名和对应的版本要去组成,表示依赖的模块及其版本范围
--save参数表示将该模块写入dependencies属性,
--save-dev表示将该模块写入devDependencies属性。
"dependencies"
: {
"vue"
:
"^2.2.2"
,
"vue-router"
:
"^2.2.0"
},
"devDependencies"
: {
"autoprefixer"
:
"^6.7.2"
,
"babel-core"
:
"^6.22.1"
,
"babel-eslint"
:
"^7.1.1"
,
"babel-loader"
:
"^6.2.10"
,
"babel-plugin-transform-runtime"
:
"^6.22.0"
,
"babel-preset-env"
:
"^1.2.1"
,
"babel-preset-stage-2"
:
"^6.22.0"
,
"babel-register"
:
"^6.22.0"
,
"chalk"
:
"^1.1.3"
,
}
4、config字段
config字段用于向环境变量输出值。
{
"name"
:
"foo"
,
"config"
: {
"port"
:
"8080"
},
"scripts"
: {
"start"
:
"node server.js"
}
}
"engines"
: {
"node"
:
">= 4.0.0"
,
"npm"
:
">= 3.0.0"
},
6.bin
许多包有一个或多个可执行文件希望被安装到系统路径。在npm下要这么做非常容易(事实上,npm就是这么运行的)。
这需要在你的package.json中提供一个bin字段,它是一个命令名和本地文件名的映射。在安装时,如果是全局安装,npm将会使用符号链接把这些文件链接到prefix/bin,如果是本地安装,会链接到./node_modules/.bin/。
比如,要使用myapp作为命令时可以这么做:
{ "bin" : { "myapp" : "./cli.js" } }
这么一来,当你安装myapp,npm会从cli.js文件创建一个到/usr/local/bin/myapp的符号链接(这使你可以直接在命令行执行myapp)