熟悉 vue || npm 的童鞋都知道,nodejs脚本执行的任务大多都写在package.json中,如下图所示。不过npm的作用不仅如此,利用好之后能够很强的提高工作效率(有时候所谓提高效率也就是人懒,就得想办法让机器多做点事儿)。
![](https://img.haomeiwen.com/i1635744/5a97b616c98a94ac.png)
执行脚本任务
node.js有两个特殊脚本任务 start test,执行这两个任务可以简写的方式
npm run start == npm start //# 执行"start"指定的脚本
npm run test == npm test //
其他任务不可省略,务必以 npm run 方式执行
npm run dev //开发环境启动vue
npm run build //打包生产环境需要文件
组合脚本任务
管道(|) || 串行(&)
熟悉gulp的都知道,gulp任务的执行类方式 管道、流 的方式,比如处理sass文件,首先将sass转换成css文件,再对css文件进行补全,之后进行压缩,然后重命名,最后输出到预设目录中。简单说就是一个任务完成之后再继续下一个任务。
当我们在执行脚本任务时可能也会有这样的需求,比如之前写过的 vue.js(SCP2)打包后自动上传到服务器 中,我直接将上传的任务写在 build.js 中,虽然能达到预想的目的,不过仔细想想这种处理方式还是不太合理(并不是每次打包后都会将服务端的文件覆盖),所以更好的方式将上传的代码单独写在一个文件中,然后在package.json中添加一个任务。
"scp_testServer": " node build/build.js | node scp/testServer.js" //管道的方式
"scp_testServer": " node build/build.js && node scp/testServer.js" //串行的方式
并行 (&)
有时候我们需要并行地执行多个命令的功能。此时使用并行符号(&)可以把子命令作为后台任务并行执行。
"scripts": {
// 并行地执行watch-js,watch-less和watch-server
"watch":"npm run watch-js & npm run watch-less & npm run watch-server",
"watch-js":"watchify app/js/main.js -t reactify -o static/bundle.js -dv",
"watch-less":"nodemon --watch app/less/*.less --ext less --exec 'npm run build-less'",
"watch-server":"nodemon --ignore app --ignore static server.js"
},
npm 不止是包管理工具,通过合理的配置任务,可以提高我们的工作效率。
参考原文:http://anders.janmyr.com/2014/03/running-scripts-with-npm.html
网友评论