npm run XXX

1 package.json scripts

执行npm run serve,实际会去执行package.json中scripts定义的serve命令

  "scripts": {
    "serve": "vue-cli-service serve"
   },
2 node_modules/.bin

接上面,package.json中serve命令里的vue-cli-service,实际会去运行node_modules/.bin中同名的脚步文件。

so,npm run serve 可以约等于执行了 ./node_modules/.bin/vue-cli-service serve

ps:.bin目录下一个命令对应的脚本文件其实会有三个,以cross-env为例,安装完成后,在bin目录下会有:cross-envcross-env.cmdcross-env.ps1三个文件。默认执行的文件是cross-env,windows系统中cmd执行的情况,会执行.cmd后缀的文件,powershell执行ps1后缀的可以跨平台。

3 package.json bin

那么是什么时候把脚本文件添加到./bin目录下的呢,就是在执行npm install命令的时候。"@vue/cli-service"中的package.json文件,声明了bin属性:

  "bin": {
    "vue-cli-service": "bin/vue-cli-service.js"
  }

这样在执行npm install vue-cli-service的时候就会把"bin/vue-cli-service.js"放到node_modules/.bin的目录下

当然全局安装的时候,可以直接在命令行执行vue-cli-service(局部安装的情况,命令行直接执行会报错

你可能感兴趣的:(npm run XXX)