前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >创建并发布 Scoped NPM 模块

创建并发布 Scoped NPM 模块

作者头像
kongxx
发布2024-08-09 10:10:31
650
发布2024-08-09 10:10:31
举报

接前一篇文章,如果创建的 NPM 包在 NPM 上已经存在,那么此时可以修改包名,或者通过Scoped NPM包的方式发布。

Scoped NPM包是指那些以@符号开头的NPM包,这些包通常用于组织内部的项目。

创建一个Scoped NPM模块

在创建NPM模块之前,你需要先创建一个Scoped NPM模块。

代码语言:javascript
复制
$ mkdir my-npm-package
$ cd my-npm-package
$ npm init --scope=@<user>

如果工程已经创建了,可以在工程目录下运行 npm adduser 来添加用户

代码语言:javascript
复制
$ npm adduser --scope=@<user>

此时package.json文件中name字段会包含scope内容<user>,比如:

代码语言:javascript
复制
...
"name": "@<user>/my-npm-package",
...

添加模块代码

创建新文件 index.js,内容如下

代码语言:javascript
复制
function helloworld() {
    console.log('Hello World!');
}

module.exports = helloworld;

测试模块

在模块目录(my-npm-package)下执行

代码语言:javascript
复制
$ cd my-npm-package
$ npm link

创建一个新的工程来使用上面创建的模块,比如测试模块叫 my-npm-package-test

代码语言:javascript
复制
$ mkdir my-npm-package-test
$ cd my-npm-package-test
$ npm init

在 my-npm-package-test 工程中使用 my-npm-package 模块

代码语言:javascript
复制
$ cd my-npm-package-test
$ npm link @<user>/my-npm-package 

此时会在 my-npm-package-test 工程中创建一个软链接,指向 my-npm-package 模块的安装路径。

创建测试代码,比如创建 test.js 文件,内容如下,导入包的时候需要添加scope内容<user>。

代码语言:javascript
复制
const helloworld = require('@<user>/my-npm-package');

helloworld();

运行测试

代码语言:javascript
复制
$ node test.js
Hello World!

由于是软链接,所以 my-npm-package 模块的代码修改后,不需要重新安装,直接在 my-npm-package-test 工程中重新运行测试即可。

发布NPM包

在发布之前,需要先登录NPM账号,执行命令 npm login 即可。

代码语言:javascript
复制
$ cd my-npm-package
$ npm login

$ npm publish --access public

npm notice 
npm notice 📦  @<user>/my-npm-package@1.0.0
npm notice === Tarball Contents === 
npm notice 90B  index.js    
npm notice 223B package.json
npm notice === Tarball Details === 
npm notice name:          @<user>/my-npm-package             
npm notice version:       1.0.0                                   
npm notice filename:      <user>-my-npm-package-1.0.0.tgz    
npm notice package size:  340 B                                   
npm notice unpacked size: 313 B                                   
npm notice shasum:        4cbb2d61be9bdf5ab17a2bc5cb6db4291b6b7e72
npm notice integrity:     sha512-MBs8eZHqNxtuJ[...]yHLetbBi3ZL6A==
npm notice total files:   2                                       
npm notice 
npm notice Publishing to https://registry.npmjs.org/ with tag latest and public access
+ @<user>/my-npm-package@1.0.0

删除NPM模块

如果后面要删除已经发布的NPM模块,可以通过命令 npm unpublish 来实现。

代码语言:javascript
复制
$ npm unpublish @<user>/my-npm-package --force

安装使用NPM模块

代码语言:javascript
复制
$ cd my-npm-package-test

# 先删除原来的link
$ npm unlink @<user>/my-npm-package 

# 安装NPM模块
$ npm install --save @<user>/my-npm-package
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建一个Scoped NPM模块
  • 添加模块代码
  • 测试模块
  • 发布NPM包
  • 删除NPM模块
  • 安装使用NPM模块
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档