Gitee地址: https://gitee.com/ElemeFE/element.git
GitHub地址: https://github.com/ElemeFE/element.git
# 代码克隆(本地需要有git环境) git clone element-ui代码地址
查看
package.json
文件, 找到scripts
节点, 此节点用于指定脚本命令, 供npm
直接调用. 在script
中找到带有deploy
的节点, 会发现有两个命令deploy:build
和deploy:extension
, 我们要用到的就是这个deploy:build
命令, 从名字可以看出,这个命令是用来部署构建的, 运行此命令# 先安装依赖 npm install # 依赖安装完成后, 运行构建部署命令 npm run deploy:build
打包完成后在
element\examples
目录下可以发现生成了一个文件夹element-ui
,这个就是我们需要的项目
打包完成后, 我们只需要使用静态服务器发布打包完成的
element-ui
文件夹就可以了不发布也可以, 直接点开
element-ui
文件夹下的index.html
也是一样的访问文档,发布只是方便我用IP+端口的形式直接在浏览器中查看文档,直接将index.html
发送到桌面快捷方式也可以######## 使用anywhere启动element-ui离线文档 # 全局安装静态服务器 anywhere npm install anywhere -g # 在element-ui文件夹下启动anywhere并指定离线文档的端口 anywhere -p 8088 ######## 使用http-server启动element-ui离线文档 # 全局安装静态服务器 http-server npm install http-server -g # 在element-ui文件夹下启动http-server并指定离线文档的端口 http-server -p 8088
启动
anywhere
或者http-server
并指定端口成功后,就可以在浏览器中以IP+端口的形式访问离线版的element-ui
文档了(此时还有点问题,看下面的解决方法)
在电脑联网的情况下可以正常显示,但是当电脑完全断网时,有些资源是访问不到的, 此时你再打开离线文档, 发现页面一片空白, 处理这种情况很简单, 将无法访问的资源下载到本地, 并在离线文档的
index.html
中更改关联就可以了,具体哪些资源无法访问,可以查看浏览器控制台,ERR_NAME_NOT_RESOLVED
就是没有找到资源, 具体情况具体分析, 我本地浏览器控制台显示这些文件无法找到:--- color-brewer.css --- vue.runtime.min.js --- vue-router.min.js --- font_137970_p1tpzmomxp9cnmi.css --- highlight.pack.b1f71b31-3c07-11e9-ba1a-55bba1877129.js
看控制台, 无法找到的资源会在控制台显示出来:
--- color-brewer.css 127.0.0.1/:8 GET http://shadow.elemecdn.com/npm/[email protected]/styles/color-brewer.css net::ERR_NAME_NOT_RESOLVED --- vue.runtime.min.js 127.0.0.1/:20 GET http://shadow.elemecdn.com/npm/[email protected]/dist/vue.runtime.min.js net::ERR_NAME_NOT_RESOLVED --- vue-router.min.js 127.0.0.1/:21 GET http://shadow.elemecdn.com/npm/[email protected]/dist/vue-router.min.js net::ERR_NAME_NOT_RESOLVED --- highlight.pack.b1f71b31-3c07-11e9-ba1a-55bba1877129.js 127.0.0.1/:22 GET http://shadow.elemecdn.com/app/element/highlight.pack.b1f71b31-3c07-11e9-ba1a-55bba1877129.js net::ERR_NAME_NOT_RESOLVED --- font_137970_p1tpzmomxp9cnmi.css 127.0.0.1/:6 GET http://at.alicdn.com/t/font_137970_p1tpzmomxp9cnmi.css net::ERR_NAME_NOT_RESOLVED
解决资源无法找到的问题:
下载无法找到的资源到本地, 并在
index.html
中关联(资源地址在控制台报错时其实就显示了, 直接复制地址贴到下载器下载下来就行
)下载完成后, 在
index.html
中关联资源地址 (我本地将下载的JS
放在了element-ui
文件夹下的static\js\
文件夹中,css
放在了static\css\
文件夹中, 这样后面拷贝就可以直接将所有文件都拷贝走,哪里需要就直接发布一下就能用了)<link rel="stylesheet" href="//at.alicdn.com/t/font_137970_p1tpzmomxp9cnmi.css"> <link rel="stylesheet" href="//shadow.elemecdn.com/npm/[email protected]/styles/color-brewer.css"> <script src="//shadow.elemecdn.com/npm/[email protected]/dist/vue.runtime.min.js">script> <script src="//shadow.elemecdn.com/npm/[email protected]/dist/vue-router.min.js">script> <script src="//shadow.elemecdn.com/app/element/highlight.pack.b1f71b31-3c07-11e9-ba1a-55bba1877129.js">script> <link rel="stylesheet" href="static/css/font_137970_p1tpzmomxp9cnmi.css"> <link rel="stylesheet" href="static/css/color-brewer.css"> <script src="static/js/vue.runtime.min.js">script> <script src="static/js/vue-router.min.js">script> <script src="static/js/highlight.pack.b1f71b31-3c07-11e9-ba1a-55bba1877129.js">script>
再次使用静态服务器发布
element-ui
, 就能在设备完全无网络连接的情况下访问离线文档了(资源无法找到的情况都可以使用这种方式处理,将网络资源下载到本地, 然后修改本地关联的对应位置)
静态服务器就是只支持静态资源的服务器空间, 与动态服务器不同的是, 动态服务器可以支持动态页面与数据库, 一般返回的不是文件, 而是动态生成的字符串, 而静态服务器只支持静态资源, 静态服务器只是简单的根据访问路径, 返回对应的静态文件, 有点类似于电脑上的资源管理器, 在地址栏输入某个文件的地址就能访问到相应的文件. 静态服务器只是将根路径绑定在了网站根目录下, 使用IP+地址的形式来替代根路径
将不需要的外链去除掉了部分, 比如刚进首页的跳转弹窗, 侧边目录关于angular和react的element-ui链接, 以及下拉选择版本将未离线的版本去除
/*** 这里是去除组件界面的Element React和Element Angular外链 **/ /*全局查找*/ "es":[{"name":"Changelog","path":"/changelog"} /*删除*/ {"name":"Element React","href":"https://elemefe.github.io/element-react/"},{"name":"Element Angular","href":"https://element-angular.faas.ele.me/"}, /*全局查找*/ {"zh-CN":[{"name":"更新日志","path":"/changelog"} /*删除*/ {"name":"Element React","href":"https://elemefe.github.io/element-react/"},{"name":"Element Angular","href":"https://element-angular.faas.ele.me/"}, /*全局查找*/ "en-US":[{"name":"Changelog","path":"/changelog"}, /*删除*/ {"name":"Element React","href":"https://elemefe.github.io/element-react/"},{"name":"Element Angular","href":"https://element-angular.faas.ele.me/"}, /**** 这里是去除进入主页 弹出的跳转提示 ***/ /*全局查找*/ n=localStorage.getItem("PREFER_GITHUB");-1<t.indexOf("eleme.cn")||-1<t.indexOf("element-cn")||-1<t.indexOf("element.faas") /*删除*/ ||n||setTimeout(function(){"zh-CN"===e.lang&&e.$confirm("建议大陆用户访问部署在国内的站点,是否跳转?","提示").then(function(){location.replace("https://element.eleme.cn")}).catch(function(){localStorage.setItem("PREFER_GITHUB","true")})},1e3) /** version.json 这个文件存储的是版本号, 当前版本2.15.3, 去除其它版本, 这样就不会显示其它版本了 **/ "1.4.13":"1.4","2.0.11":"2.0","2.1.0":"2.1","2.2.2":"2.2","2.3.9":"2.3","2.4.11":"2.4","2.5.4":"2.5","2.6.3":"2.6","2.7.2":"2.7","2.8.2":"2.8","2.9.2":"2.9","2.10.1":"2.10","2.11.1":"2.11","2.12.0":"2.12","2.13.2":"2.13","2.14.1":"2.14",