一些常用的函数集合,主要用到的技术如下:
ES6
的包处理方式;webpack
打包方式;BDD测试
用例,只写了部分;- 使用
jsdoc
生成注释文档; - 你用
eslint
优化代码格式;
主要在于学习相关的技术与在平时的开发中总结一些常用的技巧,当然很多的函数是借用前辈经验。
node 需要 6.0 以上版本。
$ clone https://github.com/qiuwww/keepsmiling.git
$ cd keepsmiling
$ npm i 或者 yarn
$ npm run dev
keepsmiling
|—— lib // 源文件目录
| |—— index.js // 入口文件
| |—— *.js // 其他相关文件
|—— dist // 生成文件目录,modules引用文件
|—— doc // 生成的jsdoc说明文档,点击index.html可以本地查看
|—— scripts // 用到的脚本文件及相关配置
|—— static // index.html本地调试page
|—— test // 测试用例
$ npm run dev 开发模式,开发测试函数的使用
$ npm run dist 生成可用压缩文件,方便web端使用
$ npm run build 生成编译过的ts/js文件,方便node端通过commonjs|ES6的方式引入
$ npm run test 测试函数
$ npm run eslint 测试代码规范
$ npm run publish 登录并发布代码
需要发布npm上,需要如下操作:
修改 package 的 version,说明 CHANGELOG,然后登录与发布,需要本地执行$ npm run publish
,提交之后执行。
npm login
npm publish
npm 包实际是一个存档文件,即一个目录直接打包为.zip 或 tar.gz 格式的文件,安装后解压还原为目录。 完全符合 CommonJS 规范的包目录应该包含如下这些文件:
- package.json : 包描述文件。
- bin: 用于存放可执行二进制文件的目录。
- lib:用于存放 javascript 代码的目录。
- doc:用于存放文档的目录。
- test: 用于存放单元测试用例的代码。
开发 npm 包模块的时候,就可以按照以上目录结构,进行开发:
- lib 目录下存放业务逻辑文件
- test 目录下存放单元测试用例
- .npmignore 记录哪些文件不需要被发布到 npmjs.org
- .travis.yml 是持续集成服务 travis 的描述文件
- index.js 是入口文件
- makefile 方便我们用 make test 进行测试
- README.md 是此 module 的描述和使用方法
全局安装eslint
,然后初始化配置文件,目前使用版本^4.19
,可以依据需要选择选择修改:
修改的部分规则
no-useless-escape 不允许在字符串和正则表达式中使用无意义的换行符
"no-useless-escape": "off",
测试脚手架:karam 测试框架:mocha 断言库:power-assert
后续还要不断的完善
- 修改 js 文件为 ts 语法 = src/string.ts
- 添加 type 声明文件 = typings.d.ts
要支持单独引入,发布的时候,同步发布 lib 文件夹,使用的时候可以使用:
// 单独引入
import arrayMax from 'keepsmiling/lib/array/arrayMax';
// 整体引入,从中获取部分
import keepsmiling from 'keepsmiling'; // keepsmiling.arrayMax
const { arrayMax } = keepsmiling;
husky
先sh push-master.sh 版本号
,再sh publish.sh
。
然後提交測試版本
npm publish --tag=beta
测试 beta 版本。