这个问题困扰了很长一段时间,也查过官方文档,发现打包方法和命令没有任何问题,后来也就不了了之了。
今天又遇到这样的项目了,我又把官方文档拿出来撸了一遍。按照官方的方法创建了一个示例项目发现可以正常构建,于是把项目结构和原码与开发提交进行对比,发现些许不同。
经这和开发和沟通测试发现,使用ide创建的项目只能在ide中构建,在cli中创建的项目才可以在我们的些自动化平台中构建。
问题就是这样就完美解决,于是开发组将之前的项目基于这个示例进行重新移植,全部可用。
这里分享一下创建方法
环境安装
全局安装vue-cli
npm install -g @vue/cli
创建uni-app
使用正式版(对应HBuilderX最新正式版)
vue create -p dcloudio/uni-preset-vue my-project
此时,会提示选择项目模板,初次体验建议选择 hello uni-app 项目模板,如下所示:
模板项目存放于 Github,由于国内网络环境问题,可能下载失败。针对此问题可以尝试如下措施:
更换网络重试,比如使用 4g 网络
在设备或路由器的网络设置中增加 DNS(如:8.8.8.8
)
在设备中增加固定的 hosts(如:140.82.113.4 github.com
)
运行和发布
npm run dev:%PLATFORM%
npm run build:%PLATFORM%
%PLATFORM%
可取值如下:
其他:
目前使用npm run build:app-plus
会在/dist/build/app-plus
下生成app打包资源。如需制作wgt包,将app-plus中的文件压缩成zip(注意:不要包含app-plus目录),再重命名为${appid}.wgt
, appid为manifest.json
文件中的appid
。
dev 模式编译出的各平台代码存放于根目录下的 /dist/dev/
目录,打开各平台开发工具选择对应平台目录即可进行预览(h5 平台不会在此目录,存在于缓存中);
build
模式编译出的各平台代码存放于根目录下的 /dist/build/
目录,发布时选择此目录进行发布;
dev
和 build
模式的区别:
dev
模式有 SourceMap
可以方便的进行断点调试;
build
模式会将代码进行压缩,体积更小更适合发布为正式版应用;
进行 环境判断 时,dev 模式 process.env.NODE_ENV
的值为 development
,build
模式 process.env.NODE_ENV
的值为 production
。
官方参考文档
https://uniapp.dcloud.io/quickstart-cli?id=%e7%8e%af%e5%a2%83%e5%ae%89%e8%a3%85