npm 最全用法汇总 实践打包发布库注意点 结合github维护个人库版本更新

背景

为了方便后续一些包或者组件可以脱离项目本身,独立存在一套代码中,并且进行维系,采用npm+github的方式是极其方便的,为此我们先了解下npm包是怎么发布的,以及怎么给npm追加一个github包

npm 常用用法

npm 超详细教程 - 掘金

npm发布流程

  1. 注册一个npm账号 npm

  2. 初始化一个项目:npm init

  3. 创建一个index.js文件

  4. package.json 中 main: "index.js" 指向导出的入口文件 index.js

  5. npm adduser 输入自己的 npm 账号密码

  6. npm publish --access=public,每次记得更改版本号

删除不想保留的版本

npm unpublish 名称@版本号

npm unpublish 名称 --force 强制删除所有的版本

以上仅限于没有人下载的该版本时使用,一旦被下载,就只能设置为

npm deprecate js-sls-logger-v3@1.0.1 deprecate

实战点

  1. npm 包要有针对性,你是给纯 node.js 环境使用,还是 browser 环境使用,还是 webpack 使用,如果你确定给某个模块使用,那么就要遵守这个模块的写法

  2. .npmignore 文件记录着那些文件不被发布上去,为什么要有这玩意,因为你的包一般都会进行测试,所以本地可能部署一个 webpack 环境,引用这个包,并且打包成一个 dist 文件,然后运行测试下包正常运行不,而.npmignore 可以很好的将无关文件进行忽略

  3. 包就是原始代码,千万别理解为是经过 webpack 或者 vite 等包管理公司打包的文件,因为这些包是要被其他项目引用,再由其他项目的打包工作进行统一打包处理,你擅自打成包,有可能不兼容人家的打包工具,例如 async/await 都要原生的写,最后用教授架测试

  4. npm 发布的知识 src 下的代码,其余的脚手架文件,npm 是不上传的,一定要理解为这就是个源码,其他人可以 import 这些组件,而你要有一个 index.js export 你要抛出的组件,这样就能是一个 node_module 包,你就可以在自己的代码中引用了。

  5. 一般我们常用的也就是一些对象,函数,或者组件啥的,用 export 抛出即可

// index.js文件

import ZbasePopupOnPopup from "./zbase/popup/components/ZbasePopupOnPopup";
import ZbaseTopAdv from "./zbase/popup/components/ZbaseTopAdv";

export {ZbasePopupOnPopup, ZbaseTopAdv}

NPM 代理

直接设置 export ALL_PROXY=socks5://127.0.0.1:1089/ 没用,貌似没有走系统内置代理,原来 npm 自带代理设置,这样直接将 http 和 https 都转到本地的8889 端口上去

# 假设本地代理端口为8080
npm config set proxy "http://localhost:8889"
npm config set https-proxy "http://localhost:8889"

# 有用户密码的代理
npm config set proxy "http://username:password@localhost:8889"
npm confit set https-proxy "http://username:password@localhost:8889"

NPM 库包引入路径

采用相对路径引入

var lz4init = require("./lz4");

var lz4 = lz4init("lz4");
var Buffer = lz4init("buffer").Buffer;

NPM publish 的内容通过 package.json 中的 files 进行配置

"files"属性的值是一个数组,内容是模"files"属性的值是一个数组,内容是模块下文件名或者文件夹名,如果是文件夹名,则文件夹下所有的文件也会被包含进来(除非文件被另一些配置排除了)

你也可以在模块根目录下创建一个".npmignore"文件(windows下无法直接创建以"."开头的文件,使用linux命令行工具创建如git bash),写在这个文件里边的文件即便被写在files属性里边也会被排除在外,这个文件的写法".gitignore"类似。

NPM 只想发布 build 后的源码,那将 files:['dist'] 发布前打个包

结合 github 的玩法

npm 安装私有 git 包 - 无梦灬 - 博客园

已打 tag 的方式上传,否则 npm 会按照 package-lock.json 更新,不会主动拉最新的 github 代码,所以用 tag 的方式,保证代码的新鲜度

npm i git+https://username:password@git.example.com/path/reposity#1.0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值