064.NodeJs做个CDN的Cli

# 064.NodeJs做个CDN的Cli

不等不靠,有囧有料。攻城狮看平衡,程序猿看利弊,码农看对错 :)

接轨js世界,写2个有关CDN的轮子,熟悉下NodeJs和npm体系。

replacer来hash资源,替换引用。uploader上传资源到CDN。

@史荣久 / 2018-07-22 / CC-BY-SA-3.0

## 观看视频

* [B站视频(效果不错)](https://www.bilibili.com/video/av27589421/)

* [腾讯视频(被转720P)](https://v.qq.com/x/page/r07316w96uo.html)

* [百度网盘(原始1080P)](https://pan.baidu.com/s/1jHcDIUmSpWIrVBhg6dJWuA)

## 内容摘要

* 如何写NodeJs的命令行工具`cli`。

* 什么是`shebang`(蛇棒 `#!`)

* nodejs,ES6的基础知识(export和require)。

* node版本号,大工程应该定死,尽量禁止自动升级。

* jshint提高代码质量,禁止一些不必要的警报。

* 使用vscode做主力编辑器比较轻量级。

* Ant模式的通配符(wildcard)和正则。

* js正则不只支持逆向环视的变通方法。

* js string.replace的多种用法。

* 递归文件(需要做短路设计,提前熔断),是必备技能。

* 使用js作为配置文件更舒服,比如正则,注释,末尾逗号等。

* 组件及其测试的考量(入口,配置,模块,测试)。

* 非语法分析的URL替换需要考虑边界(总比常见的多)。

## 参考资料

* [LINUX上的SHEBANG符号(#!)](http://smilejay.com/2012/03/linux_shebang/)

* [知乎:写一个 npm cli](https://zhuanlan.zhihu.com/p/25249117)

* [阮一峰:ECMAScript 6 入门](http://es6.ruanyifeng.com/)

* [阮一峰:require() 源码解读](http://www.ruanyifeng.com/blog/2015/05/require.html)

* [jshint配置](http://jshint.com/docs/options/#asi)

* [Node中Exports的区别](http://www.cnblogs.com/pigtail/archive/2013/01/14/2859555.html)

* [commander 命令行解析工具](https://www.npmjs.com/package/commander)

* [Node版本号](https://stackoverflow.com/questions/22343224)

* [Js正则不支持逆向环视](https://stackoverflow.com/questions/7376238/javascript-regex-look-behind-alternative)

* [AntPathMatcher](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html)

* [a9cdn-replacer,hash和替换](https://www.npmjs.com/package/a9cdn-replacer)

* [a9cdn-uploader,ssh和七牛上传](https://www.npmjs.com/package/a9cdn-uploader)

## 欢迎围观

``` java

if (you.accept(MoilionCircle.SPIRIT)) {

if(you.haveADL()){

MoilionCircle we = you.search(MoilionCircle.SLOGAN);

we.welcome(you);

}

if(you.share(this)){

We.thank(you);

We.mayFind7Moilion();

}

}

```

## 后记

2018的杭州前端人才市场浮躁,水多,大头雇主超多。

保护团队成果,必须看好招人关,就接触了下js世界,

node算后端,上手倒不难,三个小时写两个轮子。

按狮友`ANE-K`的留言建议,尝试把视频放到`B站`。

使用体验非常棒,逐渐上传过往视频.

----

题图:NPM官网:Build Amazing Things.

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180725G1STUX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券