-
NodeJs-06 Event Loop
Event Loop
Event Loop 可以让 Node.js 实现非阻塞的 IO 操作,尽管 Node.js 本身是单线程的。
Node.js 通过将自身的操作卸载到操作系统中,现在的操作系统大多数是多核的,
可以再后台处理多个操作,并且当操作完成之后,会在合适的时间通知 Node.js,让 Node.js 拿到真正的执行结果。
Event Loop 解释
Node.js 启...
2018-04-27 10:07:14 |
NodeJs
-
NodeJs-05 Blocking vs Non-Blocking
阻塞(Blocking)
Blocking
是在节点中执行额外的JavaScript时。js进程必须等待非javascript操作完成。这是因为在发生阻塞操作时,事件循环无法继续运行JavaScript。
在 Node.js,由于CPU密集型而不是等待非JavaScript操作(比如I/O)而表现不佳的JavaScript,通常不被称为阻塞。
节点中的同步方法。使用 libuv 的js...
2018-04-26 03:17:51 |
NodeJs
-
NodeJs-04 Profile, Docker
Profile
NodeJS 调优 的方式有多种。
使用 profiler inside V8 可以让程序执行期间定期对栈进行采样。
启用
执行命令如下:
node --prof ${js_file_name}
log
执行这个命令之后,会在 js 同级目录下生成一个 isolate-0x102802400-v8.log 文件。
里面记录的内容比较多,节选部分
v8-ve...
2018-04-25 06:05:12 |
NodeJs
-
NPM-05-npm publish 发布与 CDN
npm 初始化
cnpm init
一个项目,首先初始化,然后填写对应的基本信息。
属性
接着就依次填写, 不想填写的话也可以一路Enter
name: 模块名,之后发布之后就可以让用户npm install xxxx来引用你的开源模块了 version:
版本号,语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按...
2018-04-24 14:22:23 |
NPM
-
NPM-03-npm 配置实现
简单的配置
package.json
{
"name": "vue-admin",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "vue-cli-service serve",
"build:test": "vue-cli-service buil...
2018-04-24 14:22:23 |
NPM
-
NPM-03-npm 从 registry 获取代码
搜索和选择要下载的包
您可以使用 npm 搜索栏查找要在项目中使用的包。
npm search 使用 npms 和 npms 分析器; 有关两者的更多信息,请参阅 https://npms.io/about。
排名
包裹搜索排名标准
通常,有数十个甚至数百个具有相似名称和/或相似用途的包。 为了帮助您决定要探索的最佳包,我们使用 npms 分析器根据四个标准对每个包进行了排名:
...
2018-04-24 14:22:23 |
NPM
-
NPM-02-npm public & registry
关于公共 npm 注册表(registry)
公共 npm 注册表是 JavaScript 包的数据库,每个包都由软件和元数据组成。
开源开发人员和公司的开发人员使用 npm 注册表向整个社区或其组织成员贡献包,并下载包以在自己的项目中使用。
要开始使用注册表,请注册一个 npm 帐户并查看“入门”和 CLI 文档。
关于包和模块
npm 注册表包含包,其中许多也是 Node 模块...
2018-04-24 14:22:23 |
NPM
-
NPM-01-npm 是什么?
about-npm
npm 是世界上最大的软件注册中心。
各大洲的开源开发人员都使用 npm 来共享和借用包,许多组织也使用 npm 来管理私有开发。
npm 由三个不同的组件组成:
网站
命令行界面 (CLI)
登记处
使用该网站来发现包、设置配置文件和管理 npm 体验的其他方面。 例如,您可以设置组织来管理对公共...
2018-04-24 14:22:23 |
NPM