5

1.我平时是看了package.json里有dev,就直接npm run dev,运行程序嘛,然后输入url,但没明白npm run build是做什么的?发布这词我没懂..build后发生了什么我也不懂,举个例子:https://github.com/yelingfeng/vuex-tutorial
我安装好依赖后,npm run dev控制台有报错,什么原因我也没找到,然后npm run build,再npm run dev,直接命令行就很多ERR了,请问是为什么?
2.我记得之前看到个教程,首先npm run dev运行程序,端口3000,然后教程说再输入另外一个命令查看服务器端口,就是同时俩个端口都运行了,请问这个命令怎么输入?因为3000已经在运行了,总不能control+c取消再输入吧?

yjhbdbd 232
2016-06-12 提问

查看全部 5 个回答

31

npm run XXX是执行配置在package.json中的脚本,比如:

"scripts": {
    "dev": "node build/dev-server.js",
    "build": "node build/build.js",
    "unit": "karma start test/unit/karma.conf.js --single-run",
    "e2e": "node test/e2e/runner.js",
    "test": "npm run unit && npm run e2e",
    "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
  },

只有这里配置了,你才能run,所以不是所有的项目都能npm run dev/build。要了解这些命令做了什么,就要去scripts中看具体执行的是什么代码。这里就像是一些命令的快捷方式,免去每次都要输入很长的的命令(比如unit那行)。

为什么会出现ERROR,就是因为在跑这些对应的脚本文件的时候,可能是某些依赖没有被加载等的。

一般项目都会有build, dev, unit等,从名字上基本能看出来是干什么的。比如上面配置的unit,就是开启karma去跑单元测试,具体测试内容,要去看karma.conf.js;e2e就是end to end的端到端测试;而test则会将单元测试和端到端测试都执行。

有些项目中根据需要,还会配置其他命令,例如自动生成文档,比如这里

"build:doc": "node ./scripts/build-doc.js",

如果你去build-doc.js中看的话,会发现,这个脚本在遍历所有源文件,解析注释和其他内容,自动生成API文档

推广链接