看了一下 uView 文档,使用 Vue CLI 创建了一个 uni-app 项目,因为 uView 有针对 Vue CLI 的空白项目包。
创建完,安装好依赖,执行 npm run serve
运行项目时报错:
Failed to compile with 1 error 22:52:17 Failed to resolve loader: sass-loader You may need to install it.
执行 npm i sass-loader --save-dev
安装依赖,然后报错:
Failed to compile with 1 error 23:05:07 error in ./src/components/u-cell-group/u-cell-group.vue?vue&type=style&index=0&id=65df75f8&lang=scss&scoped=true& Syntax Error: TypeError: this.getOptions is not a function
我查了一下,是 sass-loader
版本的事:
安装完可以看到 package.json
里的 sass-loader
版本是 ^11
:
"sass-loader": "^11.0.1",
很多人说, [email protected]
似乎不适用 [email protected]
。安装 [email protected]
,就可以正常工作了。
修改 package.json
文件:
"sass-loader": "^10.1.1",
最好是删除 node_modules
文件夹,然后执行 yarn
或者 npm i
重新安装依赖。
依旧报错:
Failed to compile with 1 error 23:15:25 error in ./src/components/u-cell-group/u-cell-group.vue?vue&type=style&index=0&id=65df75f8&lang=scss&scoped=true& Syntax Error: TypeError: Cannot read property 'toString' of undefined
继续解决:(正片开始)
*uView Vue CLI 空白项目版本的安装及配置
Vue CLI 创建 uni-app 项目:
首先安装 Vue CLI ,如果没有安装过的话:
npm install -g @vue/cli
创建 uni-app
使用正式版(对应 HBuilderX 最新正式版)
vue create -p dcloudio/uni-preset-vue my-project
使用 alpha 版(对应 HBuilderX 最新 alpha 版)
vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project
此时,会提示选择项目模板,选择 默认模板
即可。
安装 uView 所需依赖
安装 node-sass
依赖:
// 安装node-sass npm i node-sass -D // 安装sass-loader npm i sass-loader -D
npm 安装 uView
:
npm install uview-ui
配置 uView :
1. 引入 uView 主 JS 库
在项目根目录中的 main.js
中,引入并使用 uView 的 JS 库,注意这两行要放在 import Vue
之后。
// main.js import uView from "uview-ui"; Vue.use(uView);
2. 在引入 uView 的全局 SCSS 主题文件
在项目根目录的 uni.scss
中引入此文件。
/* uni.scss */ @import 'uview-ui/theme.scss';
3. 引入 uView 基础样式
注意!
在 App.vue
中首行的位置引入,注意给 style
标签加入 lang="scss"
属性
<style lang="scss"> /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */ @import "uview-ui/index.scss"; </style>
4. 配置 easycom 组件模式
此配置需要在项目根目录的 pages.json
中进行。
温馨提示:uni-app 为了调试性能的原因,修改 easycom 规则不会实时生效,配置完后,您需要重启 HX 或者重新编译项目才能正常使用 uView 的功能。
请确保您的 pages.json
中只有一个 easycom 字段,否则请自行合并多个引入规则。
// pages.json { "easycom": { "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" }, // 此为本身已有的内容 "pages": [ // ...... ] }
最终问题解决。
注:配置完如果还报错,尝试把 node_modules
文件删除,然后 yarn
或者 npm i
重新安装依赖即可。
你可能感兴趣:用Vue CLI创建uni-app,摆脱HBuilder,npm命令行运行及发布
本文关键词:uView 报错、uView Vue CLI 空白项目、uView 运行报错、uView 安装、uView 配置、uni-app 项目安装 uView、uni-app uView安装及配置、uView Vue CLI 空白项目安装及配置、Vue CLI 安装 uView 教程
长尾关键词:uView 报错 TypeError: this.getOptions is not a function / uView 报错 TypeError: Cannot read property 'toString' of undefined / sass-loader 报错 TypeError: this.getOptions is not a function
未经允许不得转载:w3h5 » uView UI框架Vue CLI空白项目运行报错:this.getOptions is not a function的解决方法
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/150528.html