本文主要是介绍Vue进阶(七):走近 package.json,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、初步理解
- 二、进一步理解
- 三、拓展阅读
一、初步理解
npm
安装package.json
时 直接转到当前项目目录下用命令npm install
或npm install --save-dev
安装即可,自动将package.json
中的模块安装到node-modules
文件夹下。package.json
中添加中文注释会编译出错。- 每个项目的根目录下面,一般都有一个
package.json
文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install
命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。package.json
文件可以手工编写,也可以使用npm init
命令自动生成。
注意:npm init
时,用户需回答一些问题,然后在当前目录生成一个基本的package.json
文件。所有问题之中,只有项目名称(name
)和项目版本(version
)是必填的,其他都是选填的。
二、进一步理解
以下是根据创建vue
项目的时候 npm init
自动生成的package.json
做详细的理解。
- 下面是最简单的的一个
package.json
文件(只有两个数据,项目名称和项目版本,他们都是必须的,如果没有就无法install
)
{"name": "kocla_test","version": "1.0.0",
}
- 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"},
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",
}
注:
devDependencies
下的依赖包,只是我们在本地或开发坏境下运行代码所依赖的,若发布到线上,其实就不需要devDependencies
下的所有依赖包;(比如各种loader
,babel
全家桶及各种webpack
的插件等)只用于开发环境,不用于生产环境,因此不需要打包;dependencies
是我们线上(生产坏境)下所要依赖的包,比如vue,我们线上时必须要使用的,所以要放在dependencies
下;dependencies
依赖的包不仅开发环境能使用,生产环境也能使用。- 所谓开发环境,就是指开发阶段,比如
webpack
,gulp
这些工具,都只是在开发阶段需要,一旦项目真正投入使用,便不再依赖这些插件,所以将其安装在devDependencies
即可; - 生产环境,则表示项目真正投入使用时,此时仍然需要依赖的插件则需要安装在
dependencies
中,比如vue
,vue-router
,jQuery
这些,dependencies
中没有这些插件,项目真实使用时就会出错。
config
字段
config
字段用于向环境变量输出值。
{ "name" : "foo", "config" : { "port" : "8080" }, "scripts" : { "start" : "node server.js" }
}
engines
字段
指明了该项目所需要的node.js
版本。
"engines": {"node": ">= 4.0.0","npm": ">= 3.0.0"},
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)。
三、拓展阅读
- 参考文档
- 《Vue进阶(幺幺贰):package-lock.json 文件解析》
这篇关于Vue进阶(七):走近 package.json的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!