uView UI框架Vue CLI空白项目运行报错:this.getOptions is not a function的解决方法

看了一下 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

继续解决:(正片开始)

image.png uView UI框架Vue CLI空白项目运行报错:this.getOptions is not a function的解决方法 经验总结

*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 项目安装 uViewuni-app uView安装及配置uView Vue CLI 空白项目安装及配置Vue CLI 安装 uView 教程

长尾关键词:uView 报错 TypeError: this.getOptions is not a functionuView 报错 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的解决方法

赞 (0)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)