ES6語法的包需要轉(zhuǎn)換為ES5語法
安裝bebel
npm install --save-dev babel-cli babel-preset-es2015 babel-preset-es2017 babel-preset-react對.babelrc文件進行配置
{
"presets": ["es2015","es2017","react"],
}
- 對package.json文件進行配置
添加下面選項
"scripts": {
"build": "babel src -d lib",
"prepublish": "npm run build"
},
然后按需修改package.json的main這個屬性。
- 打包
執(zhí)行npm publish即可
不要把node_modules同步到github
NPM默認不會把node_modules發(fā)上去。
但是github會。所以.gitignore這個文件不可少。
其常見內(nèi)容如下
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發(fā)包文件白名單
當執(zhí)行npm publish命令,默認包含的文件(不區(qū)分大小寫)有
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)
想設置發(fā)布文件的黑名單,通過.gitignore或.npmignore這兩個文件來設置忽略的文件或文件夾。
果你在項目中增加了 .npmignore,那么其會完全替代掉 .gitignore 的作用。
想設置發(fā)布文件的白名單,設置package.json中的files屬性。
例如
files:["package.json","src"]
這里的優(yōu)先級是files>.npmignore>.gitignore
NPM發(fā)包步驟
NPM unpulish包
首先npmjs.org不支持刪除發(fā)布時間超過二十四小時的包。
- 發(fā)布時間二十四小時內(nèi)的包
npm unpublish 包名即可。 - 發(fā)布時間超過二十四小時內(nèi)的包
發(fā)布一個新版本。里面是空文件,覆蓋以前的包。
然后執(zhí)行npm deprecate my-thing@"< 最新版本號"