为什么选择 npm script?

可能在你翻开这个页面的同时,心里在嘀咕,为什么要选择 npm script?我用着 grunt、gulp 不是挺好的么?

如果你在心里这么问自己,我会很欣慰,因为理性的选择都应该从为什么开始。在小册介绍中我提到的重量级构建工具所带来的问题,已有前人总结的非常不错,吐血推荐大家阅读原文:Why I left gulp and grunt for npm scripts,中译版也有,可以自己去搜。

说说我自己的亲身经历,在前东家接手维护过使用了 39 个 gulp 插件的项目,因为项目起步较早,部分插件所依赖的基础工具版本都比较老,当这些插件所依赖的基础工具升级之后,gulp 插件本身并没有更新的那么快,我不得不 fork 原仓库去维护内部的版本,而当 gulp 发布了新版本之后,升级插件更是一场艰苦的持久战。

冷静思考下来,上面这种复杂性其实并没有必要,在软件工程里面有个重要的原则,就是简单性,越是简单的东西越是可靠,从概率论的角度,任何系统环节越多稳定性越差。

npm script 相比 grunt、gulp 之类的构建工具简单很多,因为它消除了这些构建工具所带来的抽象层,并带给我们更大的自由度。随着社区的发展,各种基础工具你都可以信手拈来,只要你会使用 npmjs.com 去搜索,或者去 libraries.io 上搜索。

废话不多说,我再补充 3 组数据,相信看完这 3 组数据,你就知道该做出什么选择了。

Google Trends

第 1 组数据来自 Google Trends,如果你想了解任何事物的长期发展趋势,Google Trends 是个非常不错的工具。

图中是 Google 上的 grunt、gulp、webpack、npm 等 4 种工具的搜索量呈现的趋势,npm 无疑是非常值得前端工程师关注的,而真正让他强大到无所不能(夸张说法)的 npm script 是不是应该熟练掌握?

Stack Overflow Trends

第 2 组数据来自 Stack Overflow Trends,就是那个遇到任何技术问题都可以去找答案的问答社区。

图中是 4 种工具逐月问题数在全部问题总数中的占比,虽然整体比例比较小,但是从趋势来看,webpack、npm 依然是值得的关注的技术。

The State of JS Survey 2016

第 3 组数据来自 The State of JS Survey 2016 年度调查的结果,虽然 npm script 在 javascript 开发者中接受度没有排到前四名(webpack、grunt、gulp、browserify),但是在其他项中名列前茅,个人也比较好奇今年的实际表现(统计结果还没出来)。

好,关于为什么该拥抱 npm script 就说到这里,期待接下来你能跟我一起去探索 npm script 的方方面面,把它学会用好,添加到自己的武器库里。

为什么选择 npm script?相关推荐

  1. npm run buil构建后页面白屏_从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  2. 从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  3. npm script 的实践

    打包环节 要实现 假设我们的项目结构是这样的 src ├── images │ ├── a.png │ └── b.png ├── index.html ├── scripts │ └── index ...

  4. npm link run npm script

    npm link & run npm script https://blog.csdn.net/juhaotian/article/details/78672390 npm link命令可以将 ...

  5. 用 node.js 脚本替代复杂的 npm script

    用 node.js 脚本替代复杂的 npm script Node.js 丰富的生态能赋予我们更强的能力,对于前端工程师来说,使用 Node.js 来编写复杂的 npm script 具有明显的 2 ...

  6. 监听文件变化并自动运行 npm script

    监听文件变化并自动运行 npm script 软件工程师做的事情基本都是在实现自动化,比如各种业务系统是为了业务运转的自动化,部署系统是为了运维的自动化,对于开发者本身,自动化也是提升效率的关键环节, ...

  7. 在 git hooks 中运行 npm script

    在 git hooks 中运行 npm script 严肃的研发团队都会使用 Git 之类的版本管理系统来管理代码,随着 GitHub 的广受欢迎,相信大家对 Git 并不陌生.Git 在代码版本管理 ...

  8. 把庞大的 npm script 拆到单独文件中

    把庞大的 npm script 拆到单独文件中 当 npm script 不断累积.膨胀的时候,全部放在 package.json 里面可能并不是个好主意,因为这样会导致 package.json 糟 ...

  9. 实现 npm script 命令自动补全

    实现 npm script 命令自动补全 当 npm script 里面积累的命令越来越多时,重度命令行用户肯定会好奇,能不能实现类似 bash.zsh 里面的命令自动补全?答案是肯定的,下面来逐一介 ...

最新文章

  1. 为什么UI线程中创建Handler可以不传Looper?
  2. RectF Rect用法
  3. NSURL 基本方法 absoluteString
  4. 乡巴佬GHOST WIN7 SP1 旗舰版32位
  5. 多线程导出excel_【开源资讯】MyExcel 3.7.0 发布,屏蔽多线程处理细节
  6. 物联网常用模块_工业级SPI接口WiFi模块WG228助力工业物联网数据传输
  7. 键桥通讯布局大数据 9.45亿入股上海即富
  8. [转]WF4.0 基础篇 (一)开始使用WF
  9. 提高SQL语句的性能
  10. 文件上传打满服务器带宽,文件上传云服务器 带宽选择
  11. Java 7:完整的invokedynamic示例
  12. JAVA-date(计算时间差)
  13. RabbitMQ学习笔记-RabbitMQ的运转流程
  14. 【CMAKE】指定编译器架构(x86 or x64)
  15. c++中正则表达式(regex)
  16. 微信小程序开发:学习笔记[5]——JavaScript脚本
  17. xcode 5中调试技巧
  18. html如何退出登录,微信小程序怎么退出登录
  19. HTTP请求返回415错误解决办法
  20. python 缩放图片_Python实现图片尺寸缩放脚本

热门文章

  1. 《Nodejs入门》一书中存在的问题分析[转]
  2. cnblogs客户端发贴解析,Post,Get分析
  3. Hashtable Dictionary[必看]
  4. Magento 1.9.2 Unknown cipher in list: TLSv1
  5. 搜索互联网缓存页面 How to View the Cached Page of any URL or Website
  6. 另外一款超棒的响应式布局jQuery插件 – Freetile.js
  7. Shell(Bash)中如何判断是否存在某个命令
  8. 深入理解Magento – 第六章 – 高级Magento模型
  9. php.ini详细介绍与设置,配置
  10. codeigniter 操作 图标