用nodejs写一个命令行应用-package.json介绍

492 阅读1分钟

作为一个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-clipackage.json中有这样的一段

"bin": {
    "vue": "bin/vue.js"
}

通过这个配置,就可以使用vue命令了。

所以,如果你要写一个像vue一样的可执行模块,就需要加这样一个字段了。