发布npm包

Npm包管理器不用多讲,用过三大框架的应该都用过。今天讲一下怎么发布自己的npm包。

首先建一个文件夹,然后命令工具进入这个目录,执行npm init:

name 项目名称

version 项目的版本号

description 项目的描述信息

entry point 项目的入口文件

test command 项目启动时脚本命令

git repository 如果你有 Git 地址,可以将这个项目放到你的 Git 仓库里

keywords 关键词

author 作者

license 项目要发行的时候需要的证书,可忽略它

执行完毕生成package.json文件,打开就能看见这些信息。

因为我们默认的入口文件,所以在当前目录新建index.js,然后发现只能用index.js,package.json改了main的值也不行,配置文件的这个应该是只能用于webpack。

查看了很多包,发现没有多少人会直接把包的功能都写在index.js里面,应该是出于拓展性考虑。

所以这边的目录是这样的:

跟随大流使用lib文件夹,我这个包打算集成一些小功能,比如地址截取、cookie、日期转化等JavaScript功能,index.js就一句话:

module.exports = require('./lib');

然后其他操作都放在lib文件夹里面,这样就可以增加很多js文件,然后统一都集合到index.js里面,拓展性很强。还有要注意的就是lib里面暴露的也要是index.js。

Lib里面index.js我写了一个地址截取的方法:

export const urlCut = (key) => {
    var reg = new RegExp("(^|&)"+ key +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r!=null)return  unescape(r[2]); return null;
}

写好之后放到项目的node_modules,然后

import { urlCut } from 'w-collect';
console.log(urlCut);

验证是否可用,可用的话就准备发包。

Npm账号要自己去申请,在我们项目目录打开命令行:

Npm login

然后就登录,这边注意输入密码的时候是看不见的。

接着就是发布:npm publish

发布完成去npm官网搜索你自己的包,我发布的是wade-tools,可用下载,但是没有其他任何简介,暂时都没有写。

这边提一下,发包不超过24小时可以撤销发布的包,要是只是测试尽量撤销,然后不能再用这个名字发布。发包还可能出现一些错误,因为本人只遇见没有验证邮箱的错误,所以就不整理了。

(完)

本文分享自微信公众号 - coding个人笔记(gh_2ce38b49dae1),作者:wade

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Webpack第三天

    我们已经能打包能启动了,现在我们要继续开发。开发的时候我们要一直刷新才能出现,这很浪费时间,而webpack自带了热更新。

    wade
  • 严格模式use strict

    JavaScript是一个弱类型语言,这其实跟JavaScript创建之初有关系。当时JavaScript的作者只是随便写一个语言来临时使用,鬼知道JavaSc...

    wade
  • webpack(4.8.3)总结之一

    前言:webpack4从入门到高阶配置,本文先讲述webpack4的安装、基础配置、进阶配置,高阶配置放置下篇讲述。

    wade
  • Elasticsearch调优实践

    本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数调优、ES节点配置和ES使用方式三个角度入手,介绍ES调优的基本方案。当然,ES的调优绝不能一概...

    老生姜
  • Elasticsearch调优实践

    腾讯技术工程官方号
  • Elasticsearch调优实践

    本文基于ES 5.6.4,从性能和稳定性两方面,从linux参数调优、ES节点配置和ES使用方式三个角度入手,介绍ES调优的基本方案。当然,ES的调优绝不能一概...

    腾讯云时序数据库团队
  • 10 个用纯 Javascript 实现的好用插件

    现代 JavaScript 框架使构建复杂的 Web 应用变得非常容易。Vanilla JavaScript 指的是纯 Javascript 代码,没有使用任何...

    疯狂的技术宅
  • JDBC(八)批量处理

    当需要成批插入或者更新记录时。可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率

    leeqico
  • 18C 也不能避免 SQL 解析的 Bug

    作者简介 ? 苏星开 云和恩墨南区交付技术顾问,曾服务过通信、能源生产、金融等行业客户,擅长 SQL 审核和优化,DataGuard 容灾等。 1 概述 在 O...

    数据和云
  • Golang leetcode 476. Number Complement.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89175283...

    anakinsun

扫码关注云+社区

领取腾讯云代金券