我的项目应用nuxt重构,碰到了几个坑,记录一下(咱们是用的build打包而非generate动态页面打包)。
兼容IE11
问题
首先,IE11间接跑本地我的项目会报错polyfill-eventsource added missing EventSource to window
,必须得先打包再启动打包好的文件,步骤如下:npm run build // 打包生成.nuxt文件夹npm run start // 间接启动打包好的我的项目,本地测试无需拉出内容到服务器进行启动
跑我的项目仍然报错,查看报错发现是我的项目中用到的中间件有问题。
serverMiddleware
中配置了pageCache文件,其中次要是lru-cache
这个插件,node_modules中查看插件源代码,发现其中应用了es6
代码,而编译的时候,core-js没有对node_modules文件内容进行polyfill解决。解决
找到问题的起因后,就好办了。如下图,在nuxt.config.js
文件中的build--transpile内减少lru-cache
插件,此块次要是对node_modules中用到的插件进行polyfill解决。还有一个问题须要留神,如果应用的url-cache版本过低,就算polyfill解决了IE11上仍然会呈现问题,比如说咱们应用的版本是6.0.0版本。此处只须要降级一下lru-cache即可。同时对于老版本的办法也须要同步批改一下,lru-cache的
maxAge
改为了ttl
,reset
办法也改为了clear
。element主题色批改兼容sass
- 问题
element主题色间接在初始化的scss文件中批改,而后在nuxt.config.js中间接应用node_modules中的element.css是有效的。如下图所示:
因为主题色加载程序的问题,间接这样批改是不会失效的。 解决
依照官网element主题色批改主题色,如下:// 扭转主题色彩$--color-primary:$PRO_COLOR;/* 扭转 icon 字体门路变量,必须 */$--font-path: '~element-ui/lib/theme-chalk/fonts';@import "~element-ui/packages/theme-chalk/src/index";
重新启动后会报一堆正告谬误,且页面款式会错乱,查找材料后发现是
sass
版本问题,sass在1.33.0版本以上会将/
符号当作分隔符而不是除号运算,这会与element款式产生抵触,sass官网changes可查看具体内容。
最初降级sass
版本解决了这个问题,版本为~1.32.13
,~
是为了固定版本号为1.32.x。结语
至此,碰到的两个比拟辣手的nuxt+element问题均已解决,后续碰到了还会持续在此更新。