通过npm发布一个自己写的简单的npm包


前言:

学习了npm,想要自己动手操作一波,于是想着把常用的js代码功能组装成一个对象发布到npm上,以后有用的时候,通过npm安装下来直接使用,这样子就不用重发造轮子了。于是我想了想,发现自己做网站常用的代码功能有表单验证,所以决定把表单验证的JS代码封装成一个对象,然后发布到npm上。

npm:

常用命令:

npm init --yes(初始化配置)

npm i (会根据package.json里面的键dependencies,devDependencies来安装相对应的包)

npm i 包(默认安装一个最新的包,这个包在node_modules文件夹里面,并且会更新在你的package.json文件)

npm i 包@3.0.0(安装一个指定版本的包,会更新在你的package.json文件)

npm i 包 --save-dev(安装一个开发环境所需要的包,会更新在你的package.json文件)

npm uninstall 包(卸载一个包,会更新在你的package.json文件)

npm update 包(更新此包版本为最新版本,会更新在你的package.json文件)

npm run 脚本键(会根据package.json里面的"scripts"里面的脚本键自动执行相对于的值)

npm publish  (根据package.json的name发布一个包)

npm unpublish 包名 --force(卸载npm网站上自己上传的包)

 

配置文件说明:

 
 
  "name": "npm", //发布的包名,默认是上级文件夹名。不得与现在npm中的包名重复。包名不能有大写字母/空格/下滑线!
  "version": "1.0.0",//你这个包的版本,默认是1.0.0。对于npm包的版本号有着一系列的规则,模块的版本号采用X.Y.Z的格式,具体体现为:
  1、修复bug,小改动,增加z。
  2、增加新特性,可向后兼容,增加y
  3、有很大的改动,无法向下兼容,增加x
  "description": "",
  "main": "index.js",//入口文件,默认是Index.js,可以修改成自己的文件,这个很重要,当你在实际项目使用的时候,let a = require("包名"),它就去会去找对应的文件路径哦。
  "scripts": {                  // 快捷命令,在package.json同目录下输入命令 npm run 键 就会执行 相对应的命令
    "bulid": "npx webpack --config myConfig.js"  //例如 输入 npm run bulid 就会执行npx webpack --config myConfig.js的命令 。
  },
  "keywords": [],
  "author": "",
  "license": "ISC",//这个直接回车,开源文件协议吧,也可以是MIT,看需要吧。
  "dependencies": {             // 生产环境所依赖的包
    "jquery": "^3.4.1",
    "sea": "^1.0.2"
  },
  "devDependencies": {          // 开发环境所依赖的包
    "webpack": "^4.41.6"
  }
}

开始行动:发布一个hp-validate-form包

1.创建包

1.1创建文件夹hp-validate-form

1.2切换终端进入hp-validate-form文件夹 并输入 npm init --yes(初始化配置)

1.3编写JS文件

let validateForm = {
    /**
     * 描述:检测邮箱格式是否正确
     * @parmas1 检测所需文本
     * return bool
     */
    checkEmail(textValue = " ") {
        let result = false;
        let text = textValue.replace(/(^\s*)|(\s*$)/g, "");  // 去除左右空格
        let reg = /^([a-zA-Z]|[0-9]|_)+@([0-9]|[a-zA-Z])+.com$/; // 检测大陆常见邮箱
        result = reg.test(text);
        return result;
    },
    /**
     * 描述:检测密码格式至少有length位以上,其中密码必须包含一个数字、一个字母、一个特殊符号,不能有空格,中文字符。
     * @parmas1 检测所需文本 @parmas2 设置密码最短长度。
     * return bool
     */
    checkPassword(textValue = " ", length = 0) {
        let text = textValue.replace(/(^\s*)|(\s*$)/g, "");  // 去除左右空格 

        // 查看长度是否小于多少位
        if (text.length < length) return false;

        // 查看是否有数字
        let reg = /\d{1,}/g;
        if (reg.test(text) == false) return false;

        // 查看是否有字母
        reg = /[a-zA-Z]{1,}/g;
        if (reg.test(text) == false) return false;

        // 查看是否有空格
        reg = /\s/g;
        if (reg.test(text)) return false;

        // 查看是否有中文
        reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/g;
        if (reg.test(text)) return false;

        // 查看是否有特俗符合
        reg = /[~!@#$%^&*()_+/-{}'"]{1,}/g;
        if (reg.test(text) == false) return false;

        return true;
    },
    /**
     * 描述:检测用户格式至少有length位以上,其中用户名不能有空格,中文字符。
     * @parmas1 检测所需文本 @parmas2 设置密码最短长度。
     * return bool
     */
    checkUserName(textValue = " ", length = 0) {
        let text = textValue.replace(/(^\s*)|(\s*$)/g, "");  // 去除左右空格 

        // 查看长度是否小于多少位
        if (text.length < length) return false;

        // 查看是否有空格
        reg = /\s/g;
        if (reg.test(text)) return false;

        // 查看是否有中文
        reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/g;
        if (reg.test(text)) return false;

        return true;
    }
};
module.exports =  validateForm;

 

1.4文件目录结构

1.5修改package.json文件

{
  "name": "hp-validateform",
  "version": "1.0.0",
  "description": "常用的表单验证",
  "main": "./dist/validateForm.js",
  "scripts": {
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "devDependencies": {
  }
}

 

2.发布包:

终端输入:npm publish

 

 

3.下载包:

终端输入:npm i hp-validate-form

 

 

使用:

let obj = require("hp-validate-form");
console.log(obj)

 

 

 发布成功以及使用成功。

4.后续维护

当你的包需要更新的时候,只需要修改里面的代码,然后更改

"version": "1.0.0",

最后终端输入

npm publish

就可以了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM