使用的是 preact+htm 方式构建应用。
这里未使用jsx而使用htm (周边 VScode高亮插件 jsx转htm to-htm )
同时,未使用ES6的import而使用AMD规范的 im.js 模块加载器 (~~~require.js已停止维护故废弃~~~ ) 目的在于,希望浏览器直接执行“源码”从而保持灵活轻巧。 浏览器直接执行代码,带来的调试方便,可以基于替换单个模块文件进行线上调试。
由于imjs加载器文件只有2KB,构建时会直接将imjs合并到了main-build.js。
项目基础的依赖( imjs + preact + htm + preact-router + history + linkstate + remjs )打包后min文件只有26KB左右(开启gzip仅为10KB), 如果再加上axios也只有40KB左右(开启gzip仅为15KB)。所以十分轻巧,让移动端飞一般的加载速度!
编译构建的目的是自动更新版本号、压缩文件优化加载速度、对老旧浏览器的支持。
编译构建后,
路径 | 说明 |
---|---|
assets/css/index.less | 开发用样式 构建时自动编译成 index.css |
assets/css/spore.css | 公共样式库 |
assets/css/index.css | 正式样式(不要直接修改) |
assets/js/main.js | 开发环境的入口 |
assets/js/main-build.js | 构建的自动产生的中间代码未压缩 |
assets/js/main-build.out.js | 构建的正式环境入口和模块 |
assets/js/apis.js | 接口配置模块(axios) |
assets/js/components | 组件目录 |
assets/js/lib | 常用js库目录 |
assets/js/lib/util.js | 工具函数 |
assets/js/lib/standalone.module.js | preact+htm+linkState合并运行库 |
assets/js/lib/scaleToWindow.js | 居中缩放canvas适配窗口 |
assets/js/lib/fps.js | 在屏幕右上角显示当前帧率 |
assets/js/lib/rem.js | rem布局移动端适配 可配置 package.json内的designWidth |
... | (其它文件可以npm或者github查到库的信息) |
build/ | 构建配置、脚本目录 |
dist/ | 压缩包生成目录 |
npm i
注:放入php项目目录,浏览器访问运行源码进行开发,所以不构建编译可以不用安装,最终上线时进行一次构建即可。
构建开发环境 npm run build:dev
构建正式环境 npm run build:prod
合并js/lib文件夹 npm run build:lib
(可以在 build/mergejs.js 内配置黑名单)
构建index.html静态文件 npm run build:index
(需要配置php到环境变量)
zip打包 npm run pack
(配置见build/packlist.txt)
注:如果构建失败建议使用nodejs的最新版本,对制定兼容浏览器版本,配置可以修改.babelrc
环境根据版本号判断,例如,版本号 1.0.1
为正式版使用正式环境
版本号为1.0.2dev
为开发版(只要包含英文字符)就是开发版,同时使用环境配置为开发环境。
环境配置在 package.json
env字段里设置,配置后,在浏览器中可以用window.env
取到对应配置信息。
url后接?debug
切换到debug模式。如:http://localhost/?debug
此模式和开发模式类似,需要在package.json
里面配置独立的env。
另外,参数r可以跳转页面,如:http://localhost/?r=demo
可以跳到对应demo页面
package.json
里通过设置 enableDebug
可以配置是否启用调试模式
title 网站标题
share 分享相关信息,标题 内容 图片
designWidth 配置Rem的设计宽度designWidth 参考rem.js
env 环境变量
enableDebug 开启线上调试功能
preact htm imjs less babel
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。