一、进入要发布的项目根目录,初始化为npm包
npm init
name:最重要的字段之一,项目名称(少于214个字节)。没有name和version不能进行安装;
version:最重要的字段之一,项目版本。没有name和version不能进行安装;修改项目代码的同时需要修改该version字段;
description:项目描述,帮助人们通过npm search发现该项目;
main:包的入口文件
keywords:关键字,帮助人们通过npm search发现该项目;
license:开源声明;
files:字段设置发布哪些文件或目录。这个优先级高于 .npmignore 和 .gitignore 。可通过配置*.npmignore***过滤不需要的文件
这步完成之后会生成一个package.json文件,上面输入的这些信息可以在该文件中修改
二、npm登陆
若是没有账号,请先注册 https://www.npmjs.com/
npm login
如果曾经设置过淘宝的镜像代理,这里打印的内容为:
Username: *****
Password:
Email: (this IS public) *****
Logged in as ***** on https://registry.npm.taobao.org/.
如果么有设置过淘宝的镜像代理,这里打印的内容为:
Username: *****
Password:
Email: (this IS public) *****
Logged in as ***** on http://registry.npmjs.org/.
三、npm发布
发布查看是否包名被注册过
npm info 包名 //报错npm ERR! code E404错误说明没有被注册过
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npm.taobao.org/jz-cn - [no_perms] Private mode enable, only admin can publish
this module
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.
报错,这里报错是说没有权限,这里就与之前是否设置过淘宝镜像有关系,如果登陆的是淘宝镜像,这里就会报错
发布
普通用户发布 npm config set registry=http://registry.npmjs.org && npm publish
组织用户发布 npm config set registry=http://registry.npmjs.org && npm publish --access public
发布成功:会出现字样
发布组织:
npm notice
+ jz-cn@1.0.0
四、发布遇到问题
当前package.json设置了
{
"private": true //这是一种防止意外发布私有存储库的方法
}
可以看到提示the package has been marked as private
即 只有移除掉该属性才能发布。
模块安装成功后node_modules出现多余文件出现可设置package.json
"files": [ //指定提交目录文件
"es",
"dist",
"lib"
],
也可以是用.npmignore进行过滤npm文件
五、常见命令
npm login //登录
npm publish //发布
npm info 包名 //是否发布过包
npm whoami //本地登录的用户
六、dumi组件包发布问题
打包出现Error: 'insertCss' is not exported by修改.fatherrc文件
export default {
entry: 'src/index.js',
esm: 'babel', //打包类型修改babel
umd: { file: 'index' }, //umd导出文件
extractCSS: true,
cssModules: true, //开发css模块化
};