资讯专栏INFORMATION COLUMN

npm入手笔记0x002-发布自己的Node.js模块及其版本管理

mrli2016 / 503人阅读

摘要:概述本篇文章承接上文,记录的是如何发布自己的模块编写模块新建项目并初始化编写模块代码发布模块测试模块命名空间每个人都可以发布自己的包,难免会有包名相同的情况,如果想要使

0x001 概述

本篇文章承接上文,记录的是如何发布自己的Node.js模块

0x002 编写模块

新建项目并初始化

$ mkdir 0x005-publish-own-module
$ cd 0x005-publish-own-module
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (0x005-publish-own-module) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /MY_PROJECT/PROJECT_OWN/NodeJS/npm/0x005-publish-own-module/package.json:

{
  "name": "0x005-publish-own-module",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this ok? (yes)

编写模块代码

$ vim index.js

// index.js
exports.printMsg = function() {
  console.log("This is a message from the demo package");
}

发布模块

$ npm publish --access=public
+ 0x005-publish-own-module@1.0.0

测试模块

$ mkdir 0x006-use-own-package
$ cd 0x006-use-own-package
$ npm install 0x005-publish-own-module@1.0.0
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN npm@1.0.0 No description
npm WARN npm@1.0.0 No repository field.

+ 0x005-publish-own-module@1.0.0

$ vim index.js

// index.js
var myModule = require("0x005-publish-own-module");
console.log(myModule);
myModule.printMsg();

$ node index.js
{ printMsg: [Function] }
This is a message from the demo package
0x003 命名空间

每个人都可以发布自己的包,难免会有包名相同的情况,如果想要使用一个已经存在的包的包名,可以使用命名空间
package.json中的包名该为@scope/package_name就行,比如@followwinter/lodash
其中,scope为当前登录的用户名,package_name便是包名,则在安装、更新、移除、require包的时候都必须该为这种格式

0x004 包版本管理

项目的初始化版本号为1.0.0,当然也可以自行修改,也可以不遵守以下规范

主版本号:版本更新,具有颠覆式的改变或者架构的改变

次版本号:新功能更新

bug修复版本号:bug修复

0x005 tag使用

为一个版本添加一个tag
npm dist-tag add @ []

发布一个有tag的版本

npm publish --tag beta --access=public

安装

npm install 0x005-publish-own-module@beta

0x006 总结

npm publish [[--tag beta] [--access public]]

发布一个包

如果access=public,则这个包为公共的,所有人都可以通过npm安装这个包

如果携带了tag参数,则可以通过npm install >来安装这个版本的包

npm dist-tag add @ []为某个版本添加一个tag

0x007 资源

项目github

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88495.html

相关文章

  • npm入手笔记0x001-项目初始化和包增删改

    摘要:引用并执行如果安装出错,比如写错了包名,将会发生以下事情命令行报错使用可以自己新建一个文件编写也可以直接使用来初始化一个该命令是一个交互式命令,可以根据提示输入相应信息生成相应的,命令提示后面的中为提示内容,可以选择一路,然后再去修改。 0x001 概述 npm是一个包管理工具,本文章基本算是对官方文档的解读、翻译和实操笔记,顺便说明使用npm中的坑。 0x002 安装Node.js ...

    Baoyuan 评论0 收藏0
  • npm入手笔记0x005-v2和v3包依赖管理不同

    摘要:概述本篇文章承接上文,记录的和版本在包管理方面的异同,基于阅读官方原文整理简化。此时的文件夹如下所示包的复制和取消复制假设我们有一个项目依赖添加依赖依赖,此时添加依赖依赖,此时升级依赖依赖,此时升级依赖依赖,此时执行查看文件夹资源项目 0x000 概述 本篇文章承接上文,记录的v2和v3版本在包管理方面的异同,基于阅读官方原文整理简化。 0x001 v2管理方式 假设有模块A、B、C,...

    ssshooter 评论0 收藏0
  • npm入手笔记0x003-一些常见问题记录

    摘要:如何选择就如果上面所有,需要打包进生产环境就保存到,只是在开发或者打包的时候使用的就保存到即可。提示不能发布当前版本解决方案不能发布已经发布的版本,修改一下版本号就可以了想不到了,想到了再写资源项目 0x001 概述 本篇文章承接上文,记录的是一些使用过程中的疑惑 0x001 墙的原因使得包下载太慢 解决方案:使用淘宝cnpm,推荐使用cnpm,因为如果修改npm仓库,将会导致无法发布...

    luffyZh 评论0 收藏0
  • npm入手笔记0x004-npm命令及配置文件说明(未完善)

    摘要:概述本篇文章承接上文,记录的的配置和命令的详细说明。的配置说明项目名称,的时候就是使用这个。案例说明版本号,符合的版本规范的版本号,默认从开始。 0x000 概述 本篇文章承接上文,记录的package.json的配置和npm命令的详细说明。 0x001 package.json的配置 name: 说明:项目名称,npm install的时候就是使用这个name。 案例:loda...

    mzlogin 评论0 收藏0
  • 从零开始webpack生活-0x002:devServer自动刷新

    摘要:概述上一章已经实现了最简单的配置文件使用和监听功能,这一章要开始实现自动刷新。只能在终端中使用的在章节中指令后标有可以使用的功能,快速调用终端最终项目文件夹结构资源源代码 0x001 概述 上一章已经实现了最简单的webpack配置文件使用和webpack监听功能,这一章要开始实现自动刷新。 0x002 浏览器自动刷新 创建新的项目框架 - webpack_study + ...

    AlanKeene 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<