写在前面:
为了更好的开发和维护公共组件;
为了将目前的项目打包的主要阵地慢慢从fis3转移到webpack的怀抱;
为了更规范的开发流程;
这就是NPM私有仓库的初衷。
使用指南
为了更好的兼容和管理旧的项目,强烈建议先安装 NVM (node版本控制器),因为一些旧的项目在没有更好的解决方案之前还需要使用 FIS进行构建和发布 ,例如:fis3+smarty的项目,但是fis3已经停止更新,一些插件已经不兼容新版本的node!!!
安装nvm之前,如果已经安装nodejs,建议先卸载; 安装步骤:(windows系统)
一,安装nvm和nodejs
1,下载安装包(下载地址: https://github.com/coreybutler/nvm-windows/releases),安装;
2,打开命令行:
列出全部可以安装的版本号
nvm ls-remote
安装指定版本
nvm install v6.9.5 #命令后加版本号就可以进行安装,字母v可以不写
建议安装6.9.5版本兼容fis3的项目(本人亲测)
再安装 8.10.0 以上的版本,处理webpack打包,以及私有仓库的管理
用切换指定版本,切换效果是全局的
nvm use v8.11.1
至此nvm和node已经安装完成
二,安装nrm(npm镜像源管理工具)
使用nvm切换node到高版本
nvm use v8.11.1
安装
npm install -g nrm
添加私有仓库地址
nrm add flamingo http://dqdnpm01.gz.xxx.com:4873/
切换私有仓库
nrm use flamingo
查看所有仓库地址(星标为当前仓库源)
nrm ls npm ---- https://registry.npmjs.org/ cnpm --- http://r.cnpmjs.org/ taobao - https://registry.npm.taobao.org/ nj ----- https://registry.nodejitsu.com/ rednpm - http://registry.mirror.cqupt.edu.cn/ npmMirror https://skimdb.npmjs.com/registry/ edunpm - http://registry.enpmjs.org/ *flamingo http://dqdnpm01.gz.xxx.com:4873/
至此,已经可以在本地使用npm install 所需要的公共组件了,注意:公共组件包名规则 @flamingo/包名 ,如果私有仓库找不到该包,会到npm官方镜像查找,包的上传请移步到 发布指南!
发布指南
发布首先需要账号,已经禁用 npm adduser 的方式添加用户,需要账号请联系xx!
发布方式和npm包的发布一样,
首先,
npm login
然后,进入到要发布的包的目录之后
npm publish
发布命令很简单,这里重点讲一下发布的规范。
注意事项
1,发布的公共组件最好不要直接使用ES6及以上的语法,因为一般不会使用babel对node_modules的模块进行编译。或者可以使用babel编译之后在发布,并注明依赖;
2,模块化方案推荐使用commonjs规范;
3,package name 一定要使用 @flamingo/包名 的方式( @flamingo 相当于是一个命名空间,暂时使用这个) , 所以引入的时候有也要用 require(“@flamingo/包名”)
发布规范
需要发布的包必须包含, js脚本,package.json,README.md
js脚本不用多少,就是主要功能代码,可以有多个文件,需要指定入口,入口配置在 package.json 文件中;
package.json
- name:@flamingo/包名
- version:你这个包的版本,默认是1.0.0
- description:这个用一句话描述你的包是干嘛用的
- entry point:入口文件,默认是
index.js
,你也可以自己填写你自己的文件名 - test command:测试命令,目前还不需要这个。
- git repository:这个是git仓库地址,可不需要。
- keyword:包的关键字。
- author:你的账号
- license:可不需要
- 你的项目介绍
- 你的代码实现了什么功能?
- 该如何使用? (系统环境参数,部署要素)
- 代码组织架构是什么样的?
- 版本更新重要摘要