作为一个nodejs项目,每个项目根目录都有一个
package.json
,正确的配置package.json
会产生意向不到的效果,如配置bin
属性。
一个典型的package.json
文件的内容 ( 通过vue-cli生成 )
{
"name": "formula",
"version": "0.1.0",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"vue": "^2.5.16"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.0.0-beta.15",
"@vue/cli-plugin-eslint": "^3.0.0-beta.15",
"@vue/cli-service": "^3.0.0-beta.15",
"less": "^3.7.1",
"less-loader": "^4.1.0",
"vue-template-compiler": "^2.5.16"
}
}
复制代码
name 属性
name
属性是用来指定项目名称的,发布到npmjs上后,会使用这个属性作为项目名称
version 属性
version
属性是用来控制版本的,注意每次发布到npmjs之前都要修改version值
scripts 属性
scripts
属性中配置了本地构建运行的一些命令,如上面的配置文件中的build
,运行npm run build
就编译本地文件,生成能部署的代码
dependencies 属性 和 devDependencies 属性
dependencies
属性中的内容是本项目所依赖的npm模块devDependencies
属性中的内容是项目开发所需要依赖的模块,仅作为开发依赖,不会上线,如 webpack
通过npm install <package>
安装的模块会默认出现在 dependencies
,通过npm install <package> --save-dev
安装的模块会出现在 devDependencies
中。
小知识:
npm instll
的参数介绍
npm install <package> --save-prod
是install的默认参数,模块会出现在package.json
中的dependencies
中npm install <package> --save-dev
安装的模块会出现在devDependencies
中
bin 属性
bin
是用来指定各个内部命令对应的可执行文件的位置,如vue-cli
的package.json
中有这样的一段
"bin": {
"vue": "bin/vue.js"
}
复制代码
通过这个配置,就可以使用vue
命令了。
所以,如果你要写一个像vue
一样的可执行模块,就需要加这样一个字段了。