接手了一个uniapp项目,旧代码只能hbuilder编辑器打包,无法上公司的流水线,抽空研究了一下怎么转成npm打包。
网上的教程看起来特别简单,无非就是找个壳子把旧代码包起来。但是转换的过程中,踩坑不断。

思路一

按官网上教的用vue-cli 4.x去创建了一个的默认模板,旧代码扔进src文件夹,npm run serve。
报错一堆,连html-webpack-plugin都报错说找不到……检查了node_modules,生成的模板是webpack 5.74。菜鸡懵逼,uniapp官网不是说vue脚手架4创建出来的应该是webpack4吗…
但是不管我怎么尝试uniapp的npm指令,创建出的默认模板都是webpack5……
突然想到github上应该有类似的项目,我可以把人家的壳子扒下来。

思路二

顺利找到一个开源uniapp项目,这个项目是webpack4,地址:
https://github.com/stavyan/TinyShop-UniApp
src替换成我的旧代码,走起~
下面记录一下,遇上的各种报错信息

报错1:node-sass安装不上

TinyShop的sass-loader版本是7.1.0,并且同时装了sass和node-sass。
sass-loader不一定非要装node-sass,sass-loader官网上看,低版本sass-loader一直推荐装node-sass,但是高版本开始就说node-sass和sass可以二选一。
于是我删掉了package.json的node-sass,重新npm i。

报错2:less-loader未安装

迷惑,为啥有了sass,还要装less,全局搜代码,发现其中有两个文件写的是:

<style lang="less" scoped>

干掉,改成

<style lang="scss" scoped>

报错3:/deep/编译没通过

因为这个版本的sass不支持/deep/,全局替换成::v-deep

报错4: end value has mixed support, consider using flex-end instead

flex布局不支持start和end,要改成flex-end和flex-start。开发过pc端的同学应该也遇到过,start和end甚至低版本的谷歌浏览器都不支持。

至此,打包和运行都没啥问题了,如果部署后不是根目录,vue.config.js还需要加上:

publicPath: './'

之前写在manifest里的proxy代理,依旧有效,不用在vue.config.js再写一遍。

--------分割线----------

发生了变态的特殊情况,本地运行和打包都没问题,公司流水线上编译失败……
报错信息:

Invalid options object. Sass Loader has been initialized using an options object that does not match the API schema。- options has an unknown property 'data'. These properties are valid:object { implementation?, sassOptions?, prependData?, sourceMap?, webpackImporter? }

全网都告诉我,sass-loader版本过高,要降到7.1.0,可我已经是7.1.0了啊啊啊啊啊啊。
难道还要降到6不成?
自暴自弃降到了6,结果报错更多了(跪下
prependData是8的写法,破罐破摔sass-loader改成8,竟然编译通过了……迷惑脸……
我怀疑公司的流水线依赖包源是不是有问题……

【踩坑记录】uni-app工程转vue-cli 工程相关推荐

  1. 【踩坑记录】—— app运行闪退(Mac版)

    目录 一.故事开始 二.问题分析 三.无脑排查 四.总结 一.故事开始 2022/3/27 一个风和日丽的下午☀️☀️ 近期在学做一些入门级的小项目,写了个小工具的脚本之后,想拓展一下,用PYQT5做 ...

  2. qiankun + vue3使用踩坑记录

    qiankun + vue3使用踩坑记录 1.主应用 vue create qiankun-base npm install vue-router@4 npm i qiankun -S 在main.j ...

  3. 微信vue路由跳转兼容_Vue微信公众号开发踩坑记录

    需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分离模式(vue工程仅作为客户端),用户通过域名访问的是客户端,但是微信授权中 ...

  4. Kbone踩坑记录(VUE多端开发不得不做的吃螃蟹尝试)

    Kbone踩坑记录 tabbar kbone-ui使用 自定义导航 页面跳转 扩展API 环境判断 swiper 图片资源 wx-web-view Kbone踩坑记录 tabbar 所有 tabbar ...

  5. vue项目中将视频链接分享至推特的解决方法及踩坑记录

    vue项目中将视频链接分享至推特的解决方法及踩坑记录 将动态改变的视频链接分享至推特,并希望能直接在推特上播放视频的需求实现方法及踩坑记录 如果只要将文本或链接分享到推特,不需要推特识别图片/视频等媒 ...

  6. 【STM32+机智云】机智云手机APP点灯实验踩坑记录

    [STM32+机智云]机智云手机APP点灯实验踩坑记录 一.实验背景 因为项目开发需要用到云平台,所以开始学习机智云平台,听说机智云比较容易入门,还有手机APP.因此开始了踩坑之旅,一切的一切开始于一 ...

  7. VUE 集成富文本编辑器及踩坑记录

    一.查看 vue版本和vue cli版本 首先要知道自己所使用的VUE 版本和 脚手架(VUE CLI)版本 这样自己无论是在百度的时候还是选择富文本编辑器对应版本的时候都方便很多 1.查看vue 版 ...

  8. TVM: Deep Learning模型的优化编译器(强烈推荐, 附踩坑记录)

    本文作者是阿莱克西斯,原载于知乎,雷锋网(公众号:雷锋网)获得授权转载. (前排提醒,本文的人文内容部分稍稍带有艺术加工,请保持一定的幽默感进行阅读) 关注我最近想法的同学应该知道我最近都在把玩 TV ...

  9. vue-i18n使用及踩坑记录

    使用步骤 1. 安装 npm i vue-i18n 2. vue-cli下使用 //1. 引入 vue-i18n import Vue from 'vue' import VueI18n from ' ...

  10. 日常踩坑记录-汇总版

    开发踩坑记录,不定时更新 心得 RTFM 严谨的去思考问题,处理问题 严格要求自己的代码编写习惯与风格 注意 单词拼写 20200207 mybatis plus 自带insert插入异常 sql i ...

最新文章

  1. hdu1863 畅通工程---MST连通
  2. android连接mysql查询表内记录_Android Room数据库多表查询的使用实例
  3. java foreach标签,jstl c:foreach标签
  4. Python 标准类库-Windows特殊服务之msvcrt
  5. .NET 5.0预览版6发布:支持Windows ARM64设备
  6. 远控免杀专题(20)-GreatSCT免杀
  7. [Leetcode][第889题][JAVA][根据前序和后序遍历构造二叉树][分治][递归]
  8. MySQL流浪记(六)—— CONCAT到GROUP_CONCAT的沿途风景(图文详解)
  9. android webview 获取 title,【报Bug】app webview 安卓机 title显示问题
  10. linux pv命令,pv命令 – 管道查看器
  11. MusicBrainz Picard for Mac(跨平台音乐标记器)免费版
  12. 全球顶级金融机构Citadel:堡垒如何建成|精品投行系列二
  13. 怎样从excel随机抽取多行
  14. VTN联合GWI共同启动“全球健康登月计划”让更多人享受到健康新生活
  15. 1415-2结对分组情况
  16. 宝塔远程桌面助手使用教程
  17. 生成统计图类pchart---中文翻译手册
  18. MySQL--必知必会补充知识
  19. torch.cuda.is_available()返回false?
  20. 运维老鸟总结_硬件堡垒机、软件堡垒机、云堡垒机品牌怎么选?

热门文章

  1. 【转载】蠕虫病毒 incaseformat 在国内肆虐,可导致用户数据丢失
  2. win7最适合的杀毒软件(电脑适合用什么杀毒软件)
  3. 未来广播电视新技术的发展和应用
  4. 中高级Java程序员,你不得不掌握的基本功,挑战20k+
  5. AWTRIX像素灯DIY制作过程
  6. P3084 [USACO13OPEN]照片Photo(差分约束)
  7. 规范的版权Copyright说明怎么写?
  8. 华为nqa和bfd实际应用配置案例
  9. 移动支付进入下半场 BAT将各自为王
  10. 华为ensp的缺省_利用华为ENSP模拟器分析和配置中小型企业网络的综合实验