npm 发包以及遇到的问题

0.注册

去官网 注册一个账号

1.本地登录
npm login
2.打包
 npm run lib   // 查看你自己的打包命令是什么,我用的是vuecli3 下的构建库
3.本地测试
npm pck
//在其他的项目中安装 test-package.tgz
npm install 本地路径下的 test-package   
4.确认发布包的信息
name:模块名,之后发布之后就可以让用户npm install xxxx来引用你的开源模块了
version:版本号,语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
- 如果只是修复bug,需要更新Z位。
- 如果是新增了功能,但是向下兼容,需要更新Y位。
- 如果有大变动,向下不兼容,需要更新X位。
description:
简单介绍自己的模块
main:
入口文件,必要,当通过require('xxx')时,是读取main里声明的文件
test command:
测试命令
git repository:
git仓库地址
keywords:
关键词,可以通过npm搜索你填写的关键词找到你的模块
author:
作者信息,可以之后编辑更详细一些
5.发布
npm publish
6.删除
npm unpublish @//只能删除不到24小时内的包,若权限错误加上 --force
//发布时间超过二十四小时内的包
发布一个新版本。里面是空文件,覆盖以前的包。
然后执行npm deprecate my-thing@"< 最新版本号"

一个正确的顺序是以上的过程 , 但是你期间一定会遇到各种问题, 那么下面就列出可能出现的几个问题

1. 不要把node_modules同步到github

NPM默认不会把node_modules发上去。
但是github会。所以.gitignore这个文件不可少。

2. README.md

用来描述怎么使用的

3. You cannot publish over the previously published version

你已经发过一个该版本的包,修改package.json中的版本号。删除的也算发布过了

4. you do not have permission to publish "your module name". Are you logged in as the correct user?

包名被占用,修改package.json中的name,重新发布。
如果确定你的包名没有被占用,还有一种可能是本地测试的时候link过或安装过,缓存中已经存在该包,但是测试的时候信息不一致造成的,删除用户npm目录下的自己的包,尝试重新publish。

5. Request Entity Too Large

多余的文件上传了上去, 新建一个.npmignore忽略了就行,规则类似.gitignore

6.no_perms Private mode enable, only admin can publish this module

npm config set registry=http://registry.npmjs.org //修改回npm

出现问题仔细看npm-debug.log

????附赠????

npm update 
//可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。

npm cache clear
//可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。

//兼容多种引入方式
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) : (global.Qarticles = factory());

})(this, function () {
  class Qarticles {
    constructor(canvas, options = {}) {
      this.canvas = canvas
      this.width = options.width || 100
    }
    ...
    }
  return Qarticles
})

你可能感兴趣的:(npm 发包以及遇到的问题)