作为一个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一样的可执行模块,就需要加这样一个字段了。