npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hzx-jslibs

v1.0.2

Published

一些随意封装的 js 函数

Downloads

1

Readme

JsLibs

介绍

一些随意封装的 js 函数

使用说明

1. 通过 git

// 下载

> git clone [email protected]:xiaoliu666666/jsLibs.git //也可直接将 **export.js** 和 **index.js** 文件复制到项目中

// 引入
import JsLibs from '@/utils/jsLibs/index.js'

// 使用
console.log(jsLibs.getMax([10,20,30])); // 30

2. 使用 npm

// 下载

npm install hzx-jslibs

// 引入
import JsLibs from 'hzx-jslibs'

// 使用
console.log(jsLibs.getMax([10,20,30])); // 30

3. 挂载到 vue 实例

// main.js
import JsLibs from '@/utils/jsLibs/index.js'
Vue.prototype.$ = JsLibs

// 使用
console.log(this.$.getMax([10,20,30])); // 30

开发指南

1. 安装依赖

npm install 
  • 所需依赖如下
  • nodemon: 监听文件变化,重启 Node 服务器
  • browserify:将 Node.js 模块转为浏览器支持的 js 文件
  • jest: 测试框架
  • jsdoc: 根据注释生成文档
  • docdash: 文档主题

2. 运行和编译

在 Node.js 环境运行

npm run serve // 启动 Node 服务器

打包到浏览器环境运行(不支持实时编译)

npm run build // 将文件编译为浏览器支持的文件

3. 新增函数

(1) 新增测试用例

在 test 文件夹下新增测试用例,测试驱动开发,代码编写完毕后应确保测试全部通过

  • 在 tests 文件夹下,新建函数对应的测试文件,必须以 .test.js 结尾
  • describe 命令对测试用例进行分组,通常一个函数为一组
  • test 命令为单个单元测试,expect 为预期的结果,参考 断言归纳
  • 应列举所有可能的输入和输出,并确保测试通过
npm run test // 函数实现后,执行测试

npm run coverage // 生成测试的覆盖率报告,生成文件在 coverage 下

(2) 新增函数

在 libs 文件夹下新增函数,通过 module.exports 导出(必须用用单独导出的方式

// yes
module.exports.getMax = getMax
// no
module.exports = { getMax }

手动测试函数

  • 在根目录下的 index.js 中,新建 JsLibs 实例进行测试,只用于临时测试,测试通过的函数,及时删除测试

(3) 生成文档

确认变更已经 npm run serve 过,否则无法生成最新的文档,文档取自 export.js 中的注释

npm run doc // 生成文件在 doc 文件夹

文档由代码注释块自动生成,注释格式如下,参考JsDoc使用

/**
 * 判断数据类型
 * 
 * @memberof is
 * 
 * @param {Any} value 数据(必传)
 * 
 * @param {String} type 类型(必传)
 * <br /> 可选:Array,Object,Number,String,Boolean,Undefined,Null,Function
 * 
 * @returns true or false
 * 
 * @example  
 * isType(1,'Number'); // true
 * getMax({name:'zhangsan'},'Array'); // false
 *
 */

libs 库中 namespace 下的 namespace.js 为文档的目录结构,也是注释中 @memberof 的取值,格式如下:

/**
 * @namespace is
 */
 function is(){
    
 }

4.修改版本

修改 index.js 中的 _v 号,x.y.z 代表:

  • x: 结构性变更
  • y: 新增,删除函数或功能
  • z: 修复bug,优化内容

在 log.md 中补充变更内容

发布流程

  • 登陆
npm login 
  • 发布
npm publish // 发布前必须更新 package.json 中的 version 号

整体流程

libs 文件夹 -> 拼接成export.js -> 挂载到 JsLibs 原型链上 -> 实例化 JsLibs

注:外部使用时,直接调用拼接的 export.js,不会再遍历 libs 文件夹