appstore-fe-modules

1.0.2-16 • Public • Published

appstore-modules

基于lerna 的 应用商店npm模块管理 https://lernajs.io/#command-publish

dev

命令

# 为所有模块执行 npm install
npm run install 

# 为所有模块执行 npm update
npm run update

# lerna bootstrap 建立软链
npm run bootstrap

# 为所有模块执行 npm run build
npm run build

# 罗列所有模块
npm run ls

# 清空所有模块的 dependencies 同事清除软链
npm run clean

# 列出已更新,需要发布的模块
npm run updated

# 发不需要发布的模块
npm run publish


# npm 包权限添加
npm run ownerAdd # 给小组同事添加所有包的权限 小组同事 写在 ownerAdd.js 中
npm run ownerAdd ajax  # 给小组同事添加 @mi/ajax 包的权限

环境适配

# lerna 用小米的源安装会报错
nrm use taobao
npm install

# 设置一些指定镜像的源,以免下载失败
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
npm config set phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
npm config set electron_mirror=https://npm.taobao.org/mirrors/electron/

# 切回小米源
nrm use mi

# 安装每个模块的依赖,第一次比较久
npm run subinstall

# lerna
npm run bootstrap

# 添加小米npm账户
npm adduser

开发步骤

  1. git pull --rebase=true 更新代码
  2. packages文件夹下新建/修改模块
  3. npm run bootstrap 没有新建模块不用
  4. code review; git commit 提交修改
  5. git push 提交代码到远端
  6. npm run publish 发布版本,发布版本前,确认在master分支,切与远端同步

ps: 发版可以找weijianli@xiaomi.com

迁移 from Mi-Modules

最初copy了 Mi-Modules/appstore_space下的项目模块, 后续需要跟进包代码,有一个copy.js,会copy Mi-Modules/appstore_space目录下逐个项目的src文件夹到本项目的对应模块项目

开发构建约定,

  • packages 里的每一个包 都可以执行 npm run build, 作为统一构建
  • 发布之前npm run publish, 要求 子包都达到可发布状态
  • 从 Mi-Mdules copy 包过来,确保 copy了最新src, 有个copy.js 可以协助处理

发布包

发布之前确保自己本地代码与git远端代码一致,
以免本地代码不是最新的,导致 本地代码可能以npm 最新包不一致,又发一个新的版本,

发布、安装测试包,

  1. git pull --rebase=true 更新代码 或者是 git rebase master 保证各个包的版本号是最新的
# 发布测试包
npm version prerelease
npm publish --tag next

# 安装测试包
npm install <@mi/包名>@next --save

初始化新模块

使用 yeoman 生成新模块项目

# 安装yo
npm install -g yo


# link 自己的 generator
cd generators/generator-es6-webpack-module
npm link

初始化模块

mkdir -p packages/xx-module-name
cd packages/xx-module-name
yo es6-webpack-module

Readme

Keywords

none

Package Sidebar

Install

npm i appstore-fe-modules

Weekly Downloads

0

Version

1.0.2-16

License

ISC

Unpacked Size

4.76 MB

Total Files

543

Last publish

Collaborators

  • rainydaydy