mwt-package v1.0.3
概述
此工程最主要作用是用于提取前端公用的代码。包含:apis、components、utils、constants等
基本使用
发布
在package.json文件中,修改版本号
{
"version": "0.0.2",
}
然后使用publish命令,发布到服务器
npm publish --registry=http://192.168.0.202:8081/content/groups/npm/
或者:xsh npm publish
安装:install
在项目的package.json中指定依赖
{
"mwt-package": "0.0.2",
}
然后使用install命令
npm install --registry=http://192.168.0.202:8081/content/groups/npm/
或者xsh npm install
例子:增加一个API,然后发布并引用
1 增加一个API文件:mwt-package/apis/infra-isa/ManorApi.js 2 发布mwt-package 3 在其他vue文件中引用
引用:import ManorApi from "mwt-package/apis/infra-isa/ManorApi.js";
使用:ManorApi.page( { }, res => {
...
});
例子:增加一个component,然后发布并引用
1 增加一个vue文件:mwt-package/components/demo/ad/AdList.vue 2 发布mwt-package 3 在其他vue文件中引用
引用:import AdList from "mwt-package/components/demo/ad/AdList.vue";
使用:
components: {
AdList
}
<ad-list :list="adList" :line="2"> </ad-list>
相关问题
开发步骤比较繁琐
mwt-package的每一次改动,都需要发布,每次发布都会产生新的版本号,每个引用mwt-package的项目都需要重新安装依赖,如果工程已经启动,还需要重启,才能最终生效
解决方案:
在mwt-package中执行:npm link
在其他项目中执行:npm link mwt-package
注意:要修改项目中的配置:webpack.base.conf
resolve: {
symlinks: false,
}
效果是:mwt-package的每一次改动都会马上生效,不需要发布,不需要重启(非关键性文件) 注意:重新安装依赖后,需要重新link
发布的版本号问题
问题:每次发布都会产生一个新的版本号,其他工程的依赖要对应的修改。 解决:
npm包的版本号,遵循semver 2.0规范:major.minor.patch 其中major为主版本号,只有更新了不向下兼容的API时进行修改主版本号 其中minor为次版本号,当模块增加了向下兼容的功能时进行修改 其中patch为修订版本,当模块进行了向下兼容的bug修改后进行修改
npm version patch:[patch]+1
npm version minor:[minor]+1,patch归零
npm version major:[major]+1,minor/patch归零
执行npm update时
^1.2.1 代表的更新版本范围为 >=1.2.1 && < 2.0.0
^0.2.1 代表的更新版本范围为 >=0.2.1 && < 0.3.0
^0.0.2 代表的更新版本范围为 0.0.2(相当于锁定为了0.0.2版本)
1 发布mwt-package:
npm version minor
npm publish
2 在其他工程中,更新依赖(仅更新mwt-package):
npm update mwt-package
是否要独立一个工程
mwt-package有很强的版本概念,npm的版本控制也很到位,其他工程可以根据实际情况,自由选择使用哪个版本。 所以mwt-package完全可以独立一个工程去自由迭代。
考虑目前实际情况,mwt-package的定位还不是很清晰,与mwt-fe-aio也会有一定的耦合, 建议还是放置在mwt-fe-aio工程内。平时开发、调试、发布流程都会比较紧凑流畅。
从源码方面考虑,如生产环境对应的到底是哪份源码,直接查看mwt-fe-aio的线上分支,就可以分析对应的源码 如果mwt-package与mwt-fe-aio相互独立,那生产环境对应的mwt-package源码是哪一份,就比较难确定。 实际上,生产环境使用的mwt-package的版本也不好确定,除非mwt-package也有对应的develop、release、master分支
综合考虑,建议将mwt-package放置在mwt-fe-aio工程之内。
6 years ago