Open kangyana opened 1 year ago
在发布公共 package 之前,需要在 npm 官网 (opens new window)进行注册一个账号。
随后,在本地(需要发包的地方)执行命令 npm login,进行交互式操作并且登录。
$ npm login
发布一个 npm 包之前,填写 package.json 中以下三项最重要的字段。
package.json
{ "name": "@shanyue/just-demo", "version": "1.0.0", "main": "./index.js" }
之后执行 npm publish 发包即可。
$ npm publish
一旦发布完成,在任意地方通过 npm i 均可依赖该包。
const x = require("@shanyue/just-demo"); console.log(x);
如若该包进行更新后,需要再次发包,可 npm version 控制该版本进行升级,记住需要遵守 Semver 规范:
# 增加一个修复版本号: 1.0.1 -> 1.0.2 (自动更改 package.json 中的 version 字段) $ npm version patch # 增加一个小的版本号: 1.0.1 -> 1.1.0 (自动更改 package.json 中的 version 字段) $ npm version minor # 将更新后的包发布到 npm 中 $ npm publish
在 npm 发包时,实际发包内容为 package.json 中 files 字段,一般只需将构建后资源(如果需要构建)进行发包,源文件可发可不发。
files
{ "files": ["dist"] }
若需要查看一个 package 的发包内容,可直接在 node_modules/${package} 进行查看,将会发现它和源码有很大不同。 也可以在 CDN 中进行查看,以 React 为例:
node_modules/${package}
npm publish 将自动走过以下生命周期:
npm publish
发包实际上是将本地 package 中的所有资源进行打包,并上传到 npm 的一个过程。你可以通过 npm pack 命令查看详情:
npm pack
$ npm pack npm notice npm notice 📦 midash@0.2.6 npm notice === Tarball Contents === npm notice 1.1kB LICENSE npm notice 812B README.md npm notice 5.7kB dist/midash.cjs.development.js npm notice 13.4kB dist/midash.cjs.development.js.map npm notice 3.2kB dist/midash.cjs.production.min.js npm notice 10.5kB dist/midash.cjs.production.min.js.map npm notice 5.3kB dist/midash.esm.js npm notice 13.4kB dist/midash.esm.js.map npm notice 176B dist/omit.d.ts ...... npm notice === Tarball Details === npm notice name: midash npm notice version: 0.2.6 npm notice filename: midash-0.2.6.tgz npm notice package size: 11.5 kB npm notice unpacked size: 67.8 kB npm notice shasum: c89d8c1aa96f78ce8b1dcf8f0f058fa7a6936a6a npm notice integrity: sha512-lyx8khPVkCHvH[...]kBL6K6VqOG6dQ== npm notice total files: 46 npm notice midash-0.2.6.tgz
当你发包成功后,也可以前往 npm devtool (opens new window)查看各项数据。
1. 准备工作:一个账号
在发布公共 package 之前,需要在 npm 官网 (opens new window)进行注册一个账号。
随后,在本地(需要发包的地方)执行命令 npm login,进行交互式操作并且登录。
2. 发包
发布一个 npm 包之前,填写
package.json
中以下三项最重要的字段。之后执行 npm publish 发包即可。
一旦发布完成,在任意地方通过 npm i 均可依赖该包。
如若该包进行更新后,需要再次发包,可 npm version 控制该版本进行升级,记住需要遵守 Semver 规范:
3. 实际发包的内容
在 npm 发包时,实际发包内容为
package.json
中files
字段,一般只需将构建后资源(如果需要构建)进行发包,源文件可发可不发。若需要查看一个 package 的发包内容,可直接在
node_modules/${package}
进行查看,将会发现它和源码有很大不同。 也可以在 CDN 中进行查看,以 React 为例:4. 发包的实际流程
npm publish
将自动走过以下生命周期:发包实际上是将本地 package 中的所有资源进行打包,并上传到 npm 的一个过程。你可以通过
npm pack
命令查看详情:当你发包成功后,也可以前往 npm devtool (opens new window)查看各项数据。