1. 程式人生 > >ant-design-mobile框架踩坑(一)

ant-design-mobile框架踩坑(一)

一直在用ant.design桌面版,現在退出了移動版,必須研究一下,但是這不看不要緊,一看就遇到了好多坑,好多坑···

1.根據官方文件,使用dva腳手架生成專案目錄,這樣簡單一些,如果你喜歡自己建立資料夾的感覺,你也可以自己建立自己的目錄結構。由於是試驗可用性,我就用了dva生成了個目錄結構;

$ dva new mobileApp

建立完成後,已經是npm install過了,所以不需要重新下載依賴。

2.按需載入ant mobile組價的js和css。

首先安裝依賴

$ npm install antd-mobile babel-plugin-import --save

修改roadhog(可以理解為簡化版的webpack)的配置檔案.roadhogrc

檔案:

{
  "entry": "src/index.js",
  "env": {
    "development": {
      "extraBabelPlugins": [
        "dva-hmr",
          "transform-runtime",
             ["import", { "libraryName": "antd-mobile", "style": "css" }]
      ]
    },
    "production": {
      "extraBabelPlugins": [
     "transform-runtime"
, ["import", { "libraryName": "antd-mobile", "style": "css" }] ]
}
}
}

3.配置支援Icon,這個真是很重要的,也是很有用的,在移動端,如果沒有Icon,那是多麼的痛苦;
這個配置在官網說的不是很清楚,首先解釋下,roadhog這個沒有處理Icon的功能,但是他有webpack的介面,也自動尋找專案根目錄下的webpack.config.js檔案,讀取裡面的配置;所以通過在專案根目錄中新增webpack.config.js檔案來配置Icon的svg的loader。(真是神坑啊)

const
path = require('path'); module.exports = function(webpackConfig, env) { const svgDirs = [ require.resolve('antd-mobile').replace(/warn\.js$/, ''), // 1. 屬於 antd-mobile 內建 svg 檔案 // path.resolve(__dirname, 'src/assets'), // 2. 自己私人的 svg 存放目錄 ]; // 因為一個 SVG 檔案不能被處理兩遍. 在 atool-build 預設為 svg配置的svg-url-loade 裡 exclude 掉需要 svg-sprite-loader處理的目錄 // https://github.com/ant-tool/atool-build/blob/master/src/getWebpackCommonConfig.js#L162 // https://github.com/kisenka/svg-sprite-loader/issues/4 webpackConfig.module.loaders.forEach(loader => { if (loader.test && typeof loader.test.test === 'function' && loader.test.test('.svg')) { loader.exclude = svgDirs; } }); // 4. 配置 webpack loader webpackConfig.module.loaders.unshift({ test: /\.(svg)$/i, loader: 'svg-sprite', include: svgDirs, // 把 svgDirs 路徑下的所有 svg 檔案交給 svg-sprite-loader 外掛處理 }); return webpackConfig; }
這裡配置完了,執行的話,還是不行,你會發現沒有安裝`svg-sprite-loader`,新想這個簡單,直接npm install安裝就好了,安裝結束後,再執行,還是報錯,經錯查資料發現:如果你的ant-mobile的版本是`1.x`的話`svg-sprite-loader`的版本必須是`[email protected]^0.3.1`。
······
可是目前ant mobile的最高版本才是1.6啊親。

所以:
$ npm install svg-sprite-loader@0.3.1 --save-dev

4.配置玩這些,你就可以寫個demo了,但是這裡又出現了問題,為毛我開啟瀏覽器手機模式後,頁面中的字型,圖示都大一倍。機智的我想到的肯定是viewport的問題。所以index.html中的修改:

將生成的publick/index.html檔案中的viewport修改成:

<meta name="viewport" content="width=device-width,minimum-scale=0.5,maximum-scale=0.5,user-scalable=no">

好了,這個就可以了。

ant mobile還有個高清方案,這個也是全都是坑,請看下一篇部落格。

相關推薦

ant-design-mobile框架

一直在用ant.design桌面版,現在退出了移動版,必須研究一下,但是這不看不要緊,一看就遇到了好多坑,好多坑··· 1.根據官方文件,使用dva腳手架生成專案目錄,這樣簡單一些,如果你喜歡自己建立資料夾的感覺,你也可以自己建立自己的目錄結構。由於是試驗可用

微信小程式前端開發

之前由於不瞭解微信小程式的整個的執行開發機制,走了很多的彎路,腦子靈光的可能不會遇到,這個主題系列的帖子希望可以幫助到像我一樣理解能力慢的孩子。 不論是開發微信小程式還是說學習任何一門程式語言,最重要的一點是要夯實基礎,不是隻是去看看概念,從hello word開始就要好好的去對待每一行程式碼,軟工是工科,

sonar

使用sonar-scanner掃描某個專案,生成的結果太大了,結果upload到資料庫失敗,說明是在往資料庫插入資料時超過了設定的最大允許數據包值:max_allowed_packet解決辦法:修改(或設定)mysql的my.cnf內的max_allowed_packet值,

Vue2配置axios跨域和從後端取資料賦值

Vue2配置axios跨域 這個系列主要記錄自己實習期間的踩坑過程,不完全準確,只能說這個方法確實解決了我自己的問題,歡迎交流,但不喜勿噴: main.js import Axios from 'axios' Vue.config.productionTip =

那些年,在nodejs上過的

自己寫nodejs也有一段時間,踩過很多坑(而且大部分是自己給自己埋),也見過很多別人踩過的坑,原因其實也很簡單,要麼是對這個知識點理解不夠深入,要麼就是編碼的習慣不好。這段響應朋春大牛的號召,打算陸陸續續整理下這些坑,算是給自己一個備忘,同時也希望能對大家有所幫助。 1.

Django 過的

平臺:win10 工具:cmd python3 剛剛學習Django搭建環境,網站還木有釋出,就直接來了個大麻煩。 一切按著《Django 學習筆記(二)》這篇文章來的,在最後cmd執行伺服器(manage runserver 或者python manage.py runserver)的時候出錯了,具體程式碼

Android整合極光推送和過的

轉載請標明出處 整合步驟以及整合過程遇到的坑: 這部分主要闡述了整合極光推送的sdk的步驟,以及我在整合過程中遇到的一些問題。整合步驟只是摘出了極光SDK中必須的骨子的部分,可以滿足一般專案Push需求,這裡只做了通知訊息,自定義的穿透訊息請詳見極光的SDK整合文件

Dubbo框架應用之--服務體系

white 部件 esp 恢復 fonts resp auto zh-cn 通過 Dubbo 是阿裏巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,能夠和 Spring框架無縫集成,也是一個很全面的

SSH框架學習------struts2

str struts2 oct 簡單 src package efi struts2配置 html 1.總的目錄 2.所有程序 1)index.jsp很簡單 <%@ page language="java" contentType="text/html; chars

Dji Mobile SDK 基礎實現

n-1 app lba ger print ttl touch事件 釋放 bsp Dji Mobile SDK 基礎實現(一) 本文簡要介紹如何通過調用DJI Mobile SDK,實現獲取和釋放無人機的控制權限、模擬遙控器按鈕控制無人機的飛行、獲取無人機的回傳視頻、獲取無

小程序入---如何引入iconfont 字體圖標

tex 兩種 pid 不用 tencent 16進制 點心 想是 方便 最近一直忙於日常任務,其實是懶癌又犯了。。。。。。。。。。不過因為自己的“懶癌”,“不思進取”給自己挖了不少坑。 一,小程序工具的安裝 打開簡易小程序的官網https://mp.weixin.qq.c

vue遇到的——數組更新

clas $set 必須 被調用 img block 更新 存在 left 最近在項目中遇到個問題,數組已經更新了,但是頁面中的DOM並沒有觸發變化。我一直以來的想法就是: 既然vue實現的實時數據雙向綁定,那麽在model層發生了變化之後為什麽就沒有在view層更新呢?

AVFoundation 框架初探究

device 延時 dede 指定 來電 reat 基本 oops iop 夜深時動筆 前面一篇文章寫了視頻播放的幾種基本的方式,算是給這個系列開了一個頭,這裏面最想說和探究的就是AVFoundation框架,很想把這個框架不敢說是完全理解,但

Java NIO框架Netty教程 – Hello Netty

tex highlight bsp ret 開發 包括 tor 習慣 事件機制 先啰嗦兩句,如果你還不知道Netty是做什麽的能做什麽。那可以先簡單的搜索了解一下。我只能說Netty是一個NIO的框架,可以用於開發分布式的Java程序。具體能做什麽,各位可以盡量發揮想象。技

JAVA並行框架Fork/Join:簡介和代碼示例

over 框架設計 put 分割 gif 得到 java owa trace 一、背景 雖然目前處理器核心數已經發展到很大數目,但是按任務並發處理並不能完全充分的利用處理器資源,因為一般的應用程序沒有那麽多的並發處理任務。基於這種現狀,考慮把一個任務拆分成多個單元,每個單元

搭建ssh框架項目

pass figure 映射文件 ttext nsa Coding word map cti 一、創建web項目 二、導入jar包 三、創建數據庫(MySQL) 四、建立javaBean對象(ElecText.java),屬於持久層對象(PO對象) package

pandas讀取檔案1

查閱資料發現是檔案中存在linux無法讀取的字元’\r’即換行符 加入引數lineterminator='\n',報錯如下 加入引數error_bad_lines=False 報錯如下 Windows檢視 猜測是檔案格式的問題,在windows 系統中ed

Windows Server 2012 搭建FTP伺服器的一些

    初衷就是想在雲伺服器上寫程式,為了使本機和雲伺服器之間傳檔案更方便,於是乎搭建FTP伺服器。總結折磨我兩天的一些坑,唉,欲哭無淚啊==     首先從一個已經搭建好的FTP伺服器上下載搭FTP伺服器必須的應用程式:FileZilla,WinRA

Springboot2.x+shiro+redis整合填 redis只做快取的情況 Springboot2.0 整合shiro許可權管理

主要記錄關鍵和有坑的地方 前提: 1、SpringBoot+shiro已經整合完畢,如果沒有整合,先查閱之前的Springboot2.0 整合shiro許可權管理 2、redis已經安裝完成 3、redis客戶端使用Lettuce,這也是sprinboot2.0後預設的,與jedis的區別,自行百度

初始Spring Boot框架筆記整理

“約定大於配置” 特點 編輯 1. 建立獨立的Spring應用程式 2. 嵌入的Tomcat,無需部署WAR檔案 3. 簡化Maven配置 4. 自動配置Spring 5. 提供生產就緒型功能,如指標,健康檢查和外部配置