一、package.json是什么
package.json其实可以理解为对当前文件夹的一个“目录”,跟specs文件还是有一定区别的。
关于字段的解释,可以点击链接查看字段解释。主要的已经列出来了,还有一些注意事项:
- name :”yuba-yilai”, //一个叫做yuba-yilai的包
- version :”1.0.0”//版本号
- description 写一些描述,发布后在网上可以看到
- main 入口文件
- scripts 可选字段
- author 作者名(算是签名吧,随便写一个)
- license 可选字段
- repository 代码地址
- dependencies 存放项目或组件代码中依赖到的包
- devDependencies 可选字段 存放测试代码依赖的包或构建工具的包
1.关于main
其实就是一个文件名称,例如”index.js"
它代表着这个库的总入口,规范下,应该这个包里面所暴露给外面使用的部分,
需要通过此文件暴露出来
2.关于可选字段
<1.关于Scripts
"可选字段",object。Key是生命周期事件名,value是在事件点要跑的命令
(脚本)。
参考 npm-scripts
<2. 关于license
创建时直接回车用默认的ISC就行了
对于我来说 暂时没什么用...
3.关于package.json
里面的字典格式
“dependencies”:{
bao1,
bao2,
bao3
},
不可以再最后一个包后面加逗号
当你npm install <库名称> -save时
npm会自动排序里面的库,”,"你不用添加,自动按照格式添加的
如果你把最后一个库的版本号后面写了一个”,”
那么你用npm uninstall -g <库名称> 命令时,就会报错。
4.关于repository
"repository": {
"type": "git",
"url": "https://github.com/lijiaxiang/XXCollectionViewDemo.git"
},
方便作者拉取代码进行修改,也方便其他人在git上面看源码
type也可以是SVN
写上地址后会形成内容连接,显示在npmjs.com的官网库的右侧,方便别人查阅
鱼吧的npm
5.关于依赖的库的版本,为什么你会看到^ >= <= || 看一下下面的截图
二、linux关于npm使用的常用命令
更新一个库
npm i <库名称>发布一个当前文件所在的库
npm publish创建一个index.js文件
touch index.js创建一个文件夹
mkdir <文件夹名称>给当前库增加一个管理员——会让输入npm官网的账号和 密码
npm adduser
添加库的截图
添加一个库,并且依赖这个库
npm install <库名称> -save移除
npm uninstall <库名称> -save-
查看添加了这个库
-
并且当前库,依赖了这个库
附一篇详细介绍的文档
http://www.runoob.com/nodejs/nodejs-npm.html
创建库,目前遇到的坑以及如何填补
坑1:有一个比较简单的坑,我就不截图了,申请完npm账号之后,记得邮箱验证一
下,不然发布时候会报错。-
坑2:在npm init 创建完package.json文件以后,要记得在npm publish发布前
确认一下是否登录,登录一下npm账号,邮箱要填对。$ npm adduser Username: mcmohd Password: Email: (this IS public) mcmohd@gmail.com
-
坑3:
一个库的目录,建成这样会怎样:
如果你导入这样的目录,并且引入了这个包
就会看到一个之前常困惑我们的红屏报错,原因是找不到入口,让你重新更新库。显然这个找到原因之后,改起来很ez。
-
坑4:如果你目录建成这样
并且index.js这样写
也是不对的,会收到另外一个红屏报错,显示路径下没有xxtools
正确的路径应该是: ‘./lib/xxtools’
坑5:
关于node_modules嵌套node_modules这种形式的库,不推荐使用。搜索了一些文档,网上争议比较大,有说错的有说对的
http://cnodejs.org/topic/5502416b73263b0e4eef9aeb