前言
如果我们想开发一个npm包,那么我们应该知道一些其他规范。本文就是介绍这类信息。
查看npm文档
npm help thing
什么是一个包package
- 一个包含package.json(应用程序文件描述)的文件夹
- 可以gzip压缩
- 可以通过url访问(gzip压缩后)
- <name>@<version>已在registry发布
- <name>@<tag>映射
- <name>已经有latest标记
- 拥有一个git clone可以访问的git url
忽略包中的一些文件
- .gitignore: 默认会忽略以下文件,无需配置
空文件,或者文件内所有行都以#开头
Standard glob patterns work.
以/结束的目录
以!来指定的否定模式 - .npmignore: 具有.gitignore一样的默认忽略,并且还扩展了以下自动忽略的文件
.*.swp
._*
.DS_Store
.git
.hg
.npmrc
.lock-wscript
.svn
.wafpickle-*
config.gypi
CVS
npm-debug.log
如果这两个同时存在,则会以.gitignore为准
此外,node_modules中的文件默认是被忽略的,除非配置在bundledDependencies中的模块
link packages
npm link: 安装一个开放包可以实时看到更改,无需重复安装
- npm install . -g : 在你的package根目录下执行,列出了正在working的package。
npm link: 给你的包创建一个symlink(符号链接)
如在zmrdlb-npm-module-test下执行npm link
切换到其他目录(得有package.json),执行 npm link my-package。如(testnpmlink目录下):
npm link zmrdlb-npm-module-test
则在此目录下,安装了zmrdlb-npm-module-test到node_modules我在mac下设置link,其他目录引用zmrdlb-npm-module-test时老是报错。解决方法是:先npm install zmrdlb-npm-module-test, 然后zmrdlb-npm-module-test
此时更改zmrdlb-npm-module-test中的index.js,则testnpmlink/node_modules/zmrdlb-npm-module-test/index.js也同步了过来。
获取package的用户信息
npm owner ls <pkgname>>
移除npm
npm uninstall npm -g