移动组件库cube-ui之后编译
移动组件库cube-ui之后编译
- 背景: 使用webpack+babel开发应用越来越多,而且一般都是通过NPM进行包管理的,这样依赖包越来越多,这些依赖包也是使用ES6+开发的,所以每个包都需要编译才能发布,这样编译后代码中往往包含很多编译代码,为了消除这部分冗余,推荐大家使用后编译。
后编译解决的问题主要是代码冗余
目前大部分的前端项目开发都是使用es6+的代码并且使用babel进行编译,而传统的对代码包的引入都是引入一个被babel编译好的文件入口,这样带来了一个缺点,那就是项目中无用的代码也会被引入到最终打包的文件中。
后编译的思想是不会在包发布的时候进行编译,而是会在使用这个包的前端项目构建的时候进行编译。 - 后编译优点:
(1)公共的依赖可以实现共用,只此一份,重要的是只编译一次
(2)babel转换API部分的代码只有一份
(3)不用每个编译包都需要配置打包环节,甚至可以直接源码级别发布 - 后编译缺点:
(1)主应用地babel配置需要能兼容依赖包的babe;配置
(2)依赖包不能使用alias、不能方便地使用DefinePlugin(可以经过一次简单编译,但是不做babel处理)
(3)应用编译时间变长 - cube ui 后编译步骤:
- 先安装:
$ npm install cube-ui --save
cube-ui 搭配 webpack 2+ 支持后编译和普通编译 2 种构建方式(默认使用后编译),使用前都需要修改应用的依赖和配置。
2. 修改 package.json 并安装依赖
{// webpack-transform-modules-plugin 依赖 transformModules"transformModules": {"cube-ui": {"transform": "cube-ui/src/modules/${member}","kebabCase": true}},"devDependencies": {// 新增 stylus 相关依赖"stylus": "^0.54.5","stylus-loader": "^2.1.1","webpack-post-compile-plugin": "^1.0.0","webpack-transform-modules-plugin": "^0.4.3"}
}
- 修改 webpack.base.conf.js
var PostCompilePlugin = require('webpack-post-compile-plugin')
var TransformModulesPlugin = require('webpack-transform-modules-plugin')
module.exports = {// ...plugins: [// ...new PostCompilePlugin(),new TransformModulesPlugin()]// ...
}
- 修改 build/utils.js 中的 exports.cssLoaders 函数
exports.cssLoaders = function (options) {// ...const stylusOptions = {'resolve url': true}// https://vue-loader.vuejs.org/en/configurations/extract-css.htmlreturn {css: generateLoaders(),postcss: generateLoaders(),less: generateLoaders('less'),sass: generateLoaders('sass', { indentedSyntax: true }),scss: generateLoaders('sass'),stylus: generateLoaders('stylus', stylusOptions),styl: generateLoaders('stylus', stylusOptions)}
}
- 修改 vue-loader.conf.js
module.exports = {loaders: utils.cssLoaders({sourceMap: sourceMapEnabled,extract: false}),// ...
}
6.使用:
全部引入
在入口文件
import Vue from 'vue'
import Cube from 'cube-ui'Vue.use(Cube)
移动组件库cube-ui之后编译相关推荐
- Vue UI组件库(Element UI库)
1 移动端常用 UI 组件库 1. Vant Vant 4 - 轻量.可定制的移动端组件库 (vant-ui.github.io) 2. Cube UI cube-ui Document (didi ...
- vue组件库介绍以及组件库Element UI 的使用
组件库 前言 这篇文章介绍vue组件库! 介绍什么是组件库以及Element UI组件库的使用! 看完不会你打我.哈哈哈,开玩笑的,不多说,上刺刀!! 1. 什么是 vue 组件库 在实际开发中,前端 ...
- vue统计组件库和ui框架
element ★13489 - 饿了么出品的Vue2的web UI工具套件 Vux ★8133 - 基于Vue和WeUI的组件库 iview ★6634 - 基于 Vuejs 的开源 UI 组件库 ...
- 前端组件库(Element UI)的实现原理:教你如何实现自定义组件库,并打包发布至npm
前端组件库实现原理 前言 Demo地址 一. 组件库开发流程 1)新建vue项目: 2)编写自定义组件,封装成插件: 3)修改配置项 webpack.config.js: pakage.json: 4 ...
- React UI 组件库 Chakra UI - 01 v1.0介绍和快速使用
Chakra UI Chakra UI 是简单.模块化和可访问的 UI 组件库. 本文 Chakra UI 版本:v1.6.2 基于 React 和 Emotion(CSS-IN-JS 方案库) 基于 ...
- React UI 组件库 Chakra UI - 05 案例实践
案例实践 使用 create-react-app 新建项目. 表单 使用 Chakra UI 实现下图的表单: 构建注册表单 react-icons 是一个 React 流行图标库. // compo ...
- UI组件库Kendo UI for Vue中文入门指南(四)
在本文中,您将通过构建一个包含 Grid.DropDownList.Window 和设计主题的小应用程序来学习如何使用Kendo UI for Vue组件. Kendo UI最新官方正式版下载 7. ...
- UI组件库Kendo UI for Vue中文入门指南(二)
在本文中,您将通过构建一个包含 Grid.DropDownList.Window 和设计主题的小应用程序来学习如何使用Kendo UI for Vue组件. Kendo UI最新官方正式版下载 5. ...
- UI组件库Kendo UI for Vue中文入门指南(一)
在本文中,您将通过构建一个包含 Grid.DropDownList.Window 和设计主题的小应用程序来学习如何使用Kendo UI for Vue组件. Kendo UI最新官方正式版下载 1. ...
- UI组件库Kendo UI for Vue原生组件中文 - 按钮概述
Kendo UI for Vue Buttons包提供了代表用户可以采取的简单操作的触发器组件. Buttons package是Kendo UI for Vue库的一部分,它为Vue生态系统提供原生 ...
最新文章
- usb禁止重定向_远程桌面中的USB重定向技术解析(功能篇)
- WL 2009 professional【已解决】谢谢nooby跟海风
- 狗窝里的小日子- 7 ...
- 超迷你个人电脑微型计算机,超迷你HTPC Giada N10深度解析
- node 单个表加条件查询
- 连发生成工具_Win10菜单习惯吗?快看吧,Win10快速切换成Win7菜单就这么简单
- python如何移动文件却不覆盖现有文件_在python中创建新文件,不要覆盖现有文件...
- k2运营商服务器无响应,【求救】K2提示“等待PPP客户端连接”拨号失败
- pcr532,nfc读卡器复制家用门禁卡
- 手游开发者的渠道之困
- 一次系统宕机认识系统日志
- Android如何实现实时音视频会议的背景分割
- window10运行不了1stopt_软件与win10不兼容怎么办?完美解决Win10与软件不兼容的问题...
- TiDB 的现在和未来
- 《游戏引擎架构》试读感想
- Mac 编译安装zlib
- elementUI时间日期组件设置的默认时间在ie中无法重置
- 离散点插值反距离加权法IDW C#实现
- 史上最全的CSP-J/S 第一轮知识点
- Python 3 之 生成器详解
热门文章
- 15款方便实用在线PDF转换器
- Android开发经验的有效总结,附架构师必备技术详解
- 前端自动化测试(一)
- 【R语言】用R写for循环批量绘制生存曲线,肠子都悔青了
- java map的keyset_Java EnumMap keySet()用法及代码示例
- Redis未授权访问漏洞的利用及防护
- r语言删除csv中na行_R中去除为NA的行--转载
- 计算机缺失gfesdk.dll,xapofx1_5.dll 已加载但找不到入口点dellregisterserver
- 什么叫类与对象? 详解~
- 用英特尔独立显卡训练AI智能收银机分类模型