public:it:nodejs

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
public:it:nodejs [2021/01/04 10:38] – [3.2 npm or yarn] oakfirepublic:it:nodejs [2024/01/05 09:23] (当前版本) – [›› npm or yarn] oakfire
行 2: 行 2:
 <WRAP center tip 60%> <WRAP center tip 60%>
 News: News:
 +  * [[https://nodejs.org/en/blog/release/v18.0.0|node 18.0]]
 +  * [[https://nodejs.org/en/blog/release/v16.0.0/|node 16.0]]
   * [[https://nodejs.org/en/blog/release/v10.0.0/|node 10.0]]   * [[https://nodejs.org/en/blog/release/v10.0.0/|node 10.0]]
   * [[https://nodejs.org/en/blog/release/v8.0.0/|node 8.0]]   * [[https://nodejs.org/en/blog/release/v8.0.0/|node 8.0]]
行 19: 行 21:
   * [[http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html|深入理解JavaScript系列]]   * [[http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html|深入理解JavaScript系列]]
   * [[http://www.infoq.com/cn/articles/generator-and-asynchronous-programming|Generator and asynchronous programming]]   * [[http://www.infoq.com/cn/articles/generator-and-asynchronous-programming|Generator and asynchronous programming]]
-  * [[https://github.com/xcatliu/typescript-tutorial|Typescript 入门教程]]+  * [[Typescript]]
 <WRAP center important 80%> <WRAP center important 80%>
   * Nodejs v4.0.0 之后的版本需要 gcc 4.7版本以上来进行 addon 编译.  GCC 4.7 or newer is required due to V8 using the template alias feature in C++.   * Nodejs v4.0.0 之后的版本需要 gcc 4.7版本以上来进行 addon 编译.  GCC 4.7 or newer is required due to V8 using the template alias feature in C++.
行 28: 行 30:
   * {{:public:it:speakerdeck-_memory_management_masterclass_devtools_2_.pdf|memory_management.pdf}}   * {{:public:it:speakerdeck-_memory_management_masterclass_devtools_2_.pdf|memory_management.pdf}}
   * [[http://huang-jerryc.com/2016/04/14/NodeJS%E4%B8%AD%E8%A2%AB%E5%BF%BD%E7%95%A5%E7%9A%84%E5%86%85%E5%AD%98/|NodeJS 内存]]   * [[http://huang-jerryc.com/2016/04/14/NodeJS%E4%B8%AD%E8%A2%AB%E5%BF%BD%E7%95%A5%E7%9A%84%E5%86%85%E5%AD%98/|NodeJS 内存]]
 +  * [[https://blog.appsignal.com/2022/09/28/minimize-heap-allocations-in-nodejs.html|Minimize heap allocations in nodejs]]
  
  
行 42: 行 45:
 ===== 3. Packages ===== ===== 3. Packages =====
   * [[https://github.com/sindresorhus/awesome-nodejs|awesome-nodejs]] <wrap em>这里可以分类查找你想要的库!</wrap>   * [[https://github.com/sindresorhus/awesome-nodejs|awesome-nodejs]] <wrap em>这里可以分类查找你想要的库!</wrap>
-==== 3.1 Modules ====+==== ›› Modules ====
   * commonjs [[http://wiki.commonjs.org/wiki/Modules/1.0|Modules/1.0]]   * commonjs [[http://wiki.commonjs.org/wiki/Modules/1.0|Modules/1.0]]
   * [[http://nodejs.org/api/modules.html| modules doc]]  **modules cycles 注意关于模块互相包含的处理机制**   * [[http://nodejs.org/api/modules.html| modules doc]]  **modules cycles 注意关于模块互相包含的处理机制**
-==== 3.2 npm or yarn====+==== ›› npm or yarn====
   * [[https://www.npmjs.com/|npm]]   * [[https://www.npmjs.com/|npm]]
   * [[https://docs.npmjs.com/files/package.json|package.json]]   * [[https://docs.npmjs.com/files/package.json|package.json]]
   * npm 使用国内淘宝源<code bash>   * npm 使用国内淘宝源<code bash>
-npm config set registry https://registry.npm.taobao.org+npm config set registry https://registry.npmmirror.com
 # 配置后可通过下面方式来验证是否成功 # 配置后可通过下面方式来验证是否成功
 npm config get registry npm config get registry
行 58: 行 61:
 </code> </code>
   * [[https://yarnpkg.com/zh-Hans/|yarn]]: 更快更安全   * [[https://yarnpkg.com/zh-Hans/|yarn]]: 更快更安全
-==== 3.3 pm2 ====+  * [[https://pnpm.io/motivation|pnpm]]: 可节省硬盘空间 
 +==== ›› pm2 ====
   * [[https://github.com/Unitech/pm2|pm2]] nodejs进程管理工具,   * [[https://github.com/Unitech/pm2|pm2]] nodejs进程管理工具,
        * 进程运行状态监测,进程重启        * 进程运行状态监测,进程重启
行 64: 行 68:
        * 超过指定内存则重启        * 超过指定内存则重启
        * 文件改动则重启        * 文件改动则重启
-==== 3.async ====+==== ›› rxjs ==== 
 +  * [[https://github.com/ReactiveX/rxjs|github repo]] 
 +  * [[https://rxjs.dev/guide/overview|overview]] 
 +  * [[https://rxjs.dev/guide/observable|observable]] 这个要熟读并理解 
 +==== ›› async ====
   * [[https://github.com/caolan/async|async]]   * [[https://github.com/caolan/async|async]]
   * [[https://github.com/bsspirit/async_demo|async demo]]   * [[https://github.com/bsspirit/async_demo|async demo]]
   * [[http://zhangqi.im/webdevelopment/nodejsasyncone.html|部分介绍]]    * [[http://zhangqi.im/webdevelopment/nodejsasyncone.html|部分介绍]] 
   * [[http://blog.fens.me/nodejs-async/|全面一点的]]   * [[http://blog.fens.me/nodejs-async/|全面一点的]]
-==== 3.5 promise ====+==== ›› promise ====
   * [[http://www.thinkingincrowd.me/2013/11/13/callbacks-are-imperative/|Callbacks are imperative]] (async)回调风格是显式的控制处理流程来把很多值组织在一起,而 promises 是显式表达出值的关系来把控制流的各个组件连接在一起。回调是指令式的,promises 是函数式的   * [[http://www.thinkingincrowd.me/2013/11/13/callbacks-are-imperative/|Callbacks are imperative]] (async)回调风格是显式的控制处理流程来把很多值组织在一起,而 promises 是显式表达出值的关系来把控制流的各个组件连接在一起。回调是指令式的,promises 是函数式的
   * [[https://jysperm.me/2016/10/nodejs-error-handling/|引自这篇文章:]]如果有异常没有捕捉到怎么样?如果有一个异常一直被传递到最顶层调用栈还没有被捕捉,那么就会导致进程的崩溃退出,不过我们还有两个终极捕捉手段:<code javascript>   * [[https://jysperm.me/2016/10/nodejs-error-handling/|引自这篇文章:]]如果有异常没有捕捉到怎么样?如果有一个异常一直被传递到最顶层调用栈还没有被捕捉,那么就会导致进程的崩溃退出,不过我们还有两个终极捕捉手段:<code javascript>
行 88: 行 96:
 }); });
 </code> </code>
-==== 3.6 express ====+==== ›› express ====
   * 4.0 开始 express 废弃 connect, 默认的文件上传插件''multer''需要手动引入   * 4.0 开始 express 废弃 connect, 默认的文件上传插件''multer''需要手动引入
-==== 3.7 winston ====+==== ›› winston ====
   * [[https://github.com/flatiron/winston | Homepage]]   * [[https://github.com/flatiron/winston | Homepage]]
   * Console 默认不以json格式记录, File默认以json格式记录, 可以用''json:true/false''来修改   * Console 默认不以json格式记录, File默认以json格式记录, 可以用''json:true/false''来修改
   * ''prettyPrint'' 会把object或json展开成多行, 利于肉眼观察不利于grep分析   * ''prettyPrint'' 会把object或json展开成多行, 利于肉眼观察不利于grep分析
-==== 3.8 moment ====+==== ›› moment ====
   * <wrap em>坑!</wrap>moment如果使用object构造, 其中参数月份的值范围是0~11, 而其它构造方式是1~12;   * <wrap em>坑!</wrap>moment如果使用object构造, 其中参数月份的值范围是0~11, 而其它构造方式是1~12;
   * 改用 day.js   * 改用 day.js
-==== 3.9 http-server ====+==== ›› http-server ====
   * 使用方便的静态http服务 ''sudo npm i http-server -g'' 安装, 之后使用''http-server''命令来启动静态网站.   * 使用方便的静态http服务 ''sudo npm i http-server -g'' 安装, 之后使用''http-server''命令来启动静态网站.
-==== 3.10 一些好用的库 ====+==== ›› 一些好用的库 ====
   * [[https://www.npmjs.com/package/shelljs|shelljs]]   * [[https://www.npmjs.com/package/shelljs|shelljs]]
   * [[https://www.npmjs.com/package/inquirer|inquirer]] 超好用的命令行界面库   * [[https://www.npmjs.com/package/inquirer|inquirer]] 超好用的命令行界面库
行 105: 行 113:
   * [[https://www.npmjs.com/package/figlet|figlet]] ascii字符图形   * [[https://www.npmjs.com/package/figlet|figlet]] ascii字符图形
  
-==== 3.11 tips ====+==== ›› tips ====
    * node-gyp 提示错误''/home/you/.node-gyp/0.10.26/common.gypi not found'',原因可能是上一次失败引起,直接删除''.node-gyp''整个文件夹迫使其重新编译即可。    * node-gyp 提示错误''/home/you/.node-gyp/0.10.26/common.gypi not found'',原因可能是上一次失败引起,直接删除''.node-gyp''整个文件夹迫使其重新编译即可。
    * :!: node 从 0.12 版本开始, ''socket.remoteAddress'' 的 IP 显示格式就变成了 IPv6 格式, 比如IP ''10.11.13.3'' 变为 ''::ffff:10.11.13.3''    * :!: node 从 0.12 版本开始, ''socket.remoteAddress'' 的 IP 显示格式就变成了 IPv6 格式, 比如IP ''10.11.13.3'' 变为 ''::ffff:10.11.13.3''
  • public/it/nodejs.1609727889.txt.gz
  • 最后更改: 2021/01/04 10:38
  • oakfire