12附录
摘取附录中一些有用信息并更新:node如何在浏览器中调试、编码规范、搭建企业NPM仓库
调试Node
- 新 debugging nodejs
- node --inspect 12.2.js 启动服务
js
console.log(1);
setTimeout(function () {
debugger;
console.log("world");
}, 1000000);
/**
* Description placeholder
* @date 2024/3/14 - 14:58:13
*
* @param {*} a
* @param {*} b
* @returns {*}
*/
function aaa(a, b) {
return a + b;
}
- 打开Chrome浏览器,chrome://inspect
- 确保你的Node.js应用程序正在运行。(代码中加个setTimeout 5就可以)
- 在"Remote Target"部分,你应该看到你的Node.js进程
Node编码规范
- Douglas Crockford
- JSON、 JSLint、 JSMin和ADSafe之父
- JavaScript: TheGood Parts
- 编码规范
空格与格式 eslint
命名规范
作用域 with eval
数组与对象
- 使用for in的异同(12.3.js)
jsvar foo = []; foo[100] = 100; foo["hello"] = "world"; foo["hello1"] = "world1"; for (var i in foo) { console.log("for in", foo[i]); // 100 和 world } //foo = [0,1,2,...100] console.log(foo.length); // 长度是101 for (var i = 0; i < foo.length; i++) { console.log("for", i); // 1 - 100 } foo.forEach((val) => { console.log("each", val); // 100 });
注解规范
- dox的注释规范 来源 jsDoc
- 实践
- precommit这样的钩子脚本
搭建局域NPM仓库
如何搭建、为什么搭建、如何优化
- 搭建(过时)
- CouchDB 基于Erlang语言编写
- 两部分 www(界面)、registry(存储、api)
- 安装Erlang和CouchDB、搭建npm服务
- 同步官方仓库
- replicate实现 调取CouchDB接口,获取变动细节,同步缺失以及定时任务
- 意义
- 解决:私有模块、网络稳定性影响安装速度、隐私问题安全问题
- 未解决:模块质量和版本控制中存在的风险
- 优化方法
- 加入审核机制以及按需同步
- 1、全量同步变为按需同步:同步指定模块
- 2、审核机制:
- 公共模块:同步工程加审核机制,审核模块质量和安全、控制同步模块的权限,审核成功自动按需同步
- 企业私有模块:模块应该属于团队非个人、设置团队账号、管理员控制用户、团队账号发布、同时增加审核流程
- 更新
- 最新搭建方法:
- npm Enterprise
- npm Enterprise 废弃 -> github packages npm被github收购
- 实际是GitHub Packages充当了,私有库的角色,可以发布私有包,设置访问权限,供公司内部使用
- github packages集成了多种包,包含npm,参考
- Verdaccio
- npm Enterprise
- 最新搭建方法: