ES6语法的包需要转换为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
这个属性。
- 打包
执行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 unpulish包
首先npmjs.org不支持删除发布时间超过二十四小时的包。
- 发布时间二十四小时内的包
npm unpublish 包名
即可。 - 发布时间超过二十四小时内的包
发布一个新版本。里面是空文件,覆盖以前的包。
然后执行npm deprecate my-thing@"< 最新版本号"