node常用跨平台库介绍

最近在写关于node的跨平台服务,介绍一下几个常用的跨平台库: fs-extra git地址 npm地址 fs-extra是一个针对fsAPI的扩展,弥补fs中的一些不足. 你可以同时使用fs和fs-extra: const fs = require('fs') const fse = require('fs-extra') fs-extra提供同步和异步两种API来使用. shelljs git地址 npm地址 shelljs是一款跨平台的脚本命令库,通过shelljs我们可以很方便的使用跨平台脚本命令. 除开常用的cd,rm,grep等命令以外,我们还可以使用exec命令来呼叫外部命令, »

node cli开发介绍

最近在写项目生成工具butter-cli,把vue-cli源码看了一遍,总结一下使用node做cli开发的一些点. 1.package定义 相比普通的npm项目,在package中我们需要增加bin属性以及preferGlobal属性. bin:可以指定一个或多个shell文件,node会在-g安装后自动在node目录生成对应系统的运行文件.详见package.json preferGlobal:可以指定使用命令行运行,如果本地安装时会提示警告.详见package.json 2.使用commander定义cli命令 我们使用commander来定义cli命令的参数,见butter-cli.js #!/usr/bin/env node »

使用promise创建分页执行任务

在实际应用中,我们总会遇到以下类似的情况: 在构建爬虫时,需要对当前页面下的所有分页爬取结果页,并在结果页爬取相关数据. 在发送结果数据时,需要按一个固定的队列数量,分次发送数据. 在执行数据库操作时,需要固定数量插入. 这种分页型任务在很多应用中都需要自己实现.下面,本文将讨论具体的实现方法: 在之前的文章中,我们使用promise的传递特性来实现中间件部分的功能.今天,我们将使用promise的特性用一个简单的函数来实现上文需要的分页任务方法. 实现思路 在promise语法中,我们拥有Promise.all方法,通过Promise.all,我们可以让一串任务(数组)同时执行, »

npm私有库搭建及配置

cnpm是由淘宝团队开发的企业内部npm私有库,它包含仓库和网站两个部分: 官方网站 cnpmjs.org - github 安装基本要求 node >= 4.3.1 Databases:支持以下类型 sqlite3 >= 3.0.2, 默认为sqlite3 MySQL >= 0.5.0, 包括mysqld和mysql cli.mysql@ »

Orc开发日志01-使用Promise实现中间件

在Orc Engine开发过程中,需要用到中间件系统(middleware).目的是帮助输入数据按中间件进行流式处理并最终输出处理结果. 实现目的 在预想中,我们通过载入一个中间件函数列表,每个函数包含输入数据及下一步的呼出内容. [function(input,next){ //do something. & call next(err,output) }] 最终,通过读取中间件函数最后一次执行的输入数据,就可以完成一个数据在中间件内部的流式处理. 实现方法 由于es6中Promise本身就可以处理类似的问题,所以我们使用Promise来连接函数和函数之间的处理. /** * Create »

利用pako更快地传输文件

1. 介绍 1.1. pako介绍 pako是一个javascript编码的zlib高速压缩库,支持浏览器和nodejs. 你可以使用npm npm install pako 或者bower来进行安装 bower install pako 1.2. pako-demo pako-demo使用pako来在浏览器端进行文件压缩,并在服务端解压存储文件,用以节省网络传输流量. 2. 实现说明 2.1. 浏览器端 »

ESLint配置

1. 介绍 ESLint是一个用作JavaScript和JSX的语法检测插件,我们通过使用它来规范我们的前端代码.让整个团队成员的编码风格一致,以便于维护. 2. 安装 2.1. 项目内安装 安装开发依赖 npm install eslint --save-dev 定义配置文件 ./node_modules/.bin/eslint --init 如果需要react,请安装 npm install »

electron外部插件打包

相关问题 electron Pepper Flash Plugin不能执行. 面临问题 当需要在electron中引入外部插件(如Pepper Flash Plugin)时,打包生成.asar文件后会导致程序不能引用外部插件,从而不能执行插件对应功能. 解决方案 我们需要在打包asar文件时配置unpack选项,在打包时不打包插件目录.下面将以electron-packager为例,说明具体配置. 配置electron-packager 我们需要在electron-packager配置文件中新增asar配置: asar:{ unpackDir:'plugins' } unpackDir定义了我们无需打包的目录,下面是官方提供的几种常见配置: »