npm发包注意

ES6语法的包需要转换为ES5语法

  1. 安装bebel
    npm install --save-dev babel-cli babel-preset-es2015 babel-preset-es2017 babel-preset-react

  2. 对.babelrc文件进行配置

{
    "presets": ["es2015","es2017","react"],
}
  1. 对package.json文件进行配置
    添加下面选项
"scripts": {
  "build": "babel src -d lib",
  "prepublish": "npm run build"
},

然后按需修改package.json的main这个属性。

  1. 打包
    执行npm publish即可

不要把node_modules同步到github

NPM默认不会把node_modules发上去。
但是github会。所以.gitignore这个文件不可少。
其常见内容如下

node_modules/
design/
docs/
dist/
_site/
*.bak
mock/salary/vars.js
default.vm


# GIT/SVN generated files #
###########################
*.diff
*.patch
.svn/
.git/

# IDE generated files #
#######################
*.iml
.idea/
.ipr
.iws
*~
~*
.settings
.project
.lastbuildtime
.*proj
.deploy/

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

NPM发包文件白名单

当执行npm publish命令,默认包含的文件(不区分大小写)有

package.json
README (and its variants)
CHANGELOG (and its variants)
LICENSE / LICENCE
package.json属性main指向的文件

默认忽略的有

.git
CVS
.svn
.hg
.lock-wscript
.wafpickle-N
.*.swp
.DS_Store
._*
npm-debug.log
.npmrc
node_modules
config.gypi
*.orig
package-lock.json (use shrinkwrap instead)

想设置发布文件的黑名单,通过.gitignore.npmignore这两个文件来设置忽略的文件或文件夹。
果你在项目中增加了 .npmignore,那么其会完全替代掉 .gitignore 的作用。
想设置发布文件的白名单,设置package.json中的files属性。
例如

files:["package.json","src"]

这里的优先级是files>.npmignore>.gitignore

NPM发包步骤

参考如何发布自己模块到NPM

NPM unpulish包

首先npmjs.org不支持删除发布时间超过二十四小时的包。

  • 发布时间二十四小时内的包
    npm unpublish 包名即可。
  • 发布时间超过二十四小时内的包
    发布一个新版本。里面是空文件,覆盖以前的包。
    然后执行npm deprecate my-thing@"< 最新版本号"

你可能感兴趣的:(npm发包注意)