记前端私有NPM仓库的使用

写在前面:

为了更好的开发和维护公共组件;

为了将目前的项目打包的主要阵地慢慢从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:可不需要

 

README.md
这是一个mackdown文件(mackdown语法请自行谷歌),是你该组件的使用文档,一般包含以下内容:(如果是发布到官方,README.md文件一般是英文书写,我们这里只最为内部私有公共模块,所以可以使用中文书写或者再添加一个README_zh.md的中文使用文档)
  1. 你的项目介绍
  2. 你的代码实现了什么功能?
  3. 该如何使用? (系统环境参数,部署要素)
  4. 代码组织架构是什么样的?
  5. 版本更新重要摘要

发表评论

邮箱地址不会被公开。 必填项已用*标注