浅谈node.js 命令行工具(cli)

2020-06-17 06:52:08易采站长站整理

一. 先了解一下package.json

每个项目的根目录都有一个

package.json
文件,定义了这个项目所需要的各种模块,以及项目的配置信息,下面是一个比较完整的package.json文件


{
"name": "vue-cli",
"version": "2.9.3",
"description": "A simple CLI for scaffolding Vue.js projects.",
"preferGlobal": true,
"bin": {
"vue": "bin/vue",
"vue-init": "bin/vue-init",
"vue-list": "bin/vue-list"
},
"repository": {
"type": "",
"url": ""
},
"keywords": [
],
"author": "litongqian",
"license": "MIT",
"bugs": {
"url": ""
},
"homepage": "",
"scripts": {
"test": "npm run lint && npm run e2e",
"start": "node index.js"
},
"dependencies": {
"async": "^2.4.0",
"chalk": "^2.1.0",
},
"devDependencies": {
"chai": "^4.1.2",
"eslint": "^3.19.0",
},
"engines": {
"node": ">=6.0.0"
}
}

1. 其中scripts字段

指定了运行脚本命令的npm命令行缩写,比如start指定了运行

npm run start
时,所要执行的命令。

2. bin字段

bin项用来指定各个内部命令对应的可执行文件的位置


"bin": {
"vue": "bin/vue",
"vue-init": "bin/vue-init",
"vue-list": "bin/vue-list"
},

上面代码指定, vue 命令对应的可执行文件为 bin 子目录下的 vue 。

3. npm link

开发NPM模块的时候,有时我们会希望,边开发边试用,比如本地调试的时候,

require('myModule')
会自动加载本机开发中的模块。Node规定,使用一个模块时,需要将其安装到全局的或项目的
node_modules
目录之中。对于开发中的模块,解决方法就是在全局的
node_modules
目录之中,生成一个符号链接,指向模块的本地目录。

npm link
就能起到这个作用,会自动建立这个符号链接。

请设想这样一个场景,你开发了一个模块

myModule
,目录为
src/myModule
,你自己的项目
myProject
要用到这个模块,项目目录为
src/myProject
。首先,在模块目录(
src/myModule
)下运行
npm link
命令。


src/myModule$ npm link