搭建我的网站的mobile版的开发环境

news/2024/5/9 12:07:56/文章来源:https://blog.csdn.net/weixin_34296641/article/details/91886458

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

image.png
image.png

之前我已经搭建过一个开发移动web的react开发环境,在那时我就已经想把我的 极客教程弄一个手机上体验好的web app,无奈公司业务太多,整天忙着赶项目,下班回去的时候疲惫不堪,已经没有更多的精力放在自己的项目上。现在有点时间了,赶紧做点自己的项目。

俗话说,磨刀不误砍柴工。先花了一点时间搭建了一下开发环境,这里记录一下过程及遇到的坑。之前搭建的环境由于webpack 还是 1 ,但现在的版本都升至3.多了,所以脚手架上果断选择react官网出的create-react-app,ui上选择蚂蚁金服的 antd-mobile

1. 快速开始:

npm install -g create-react-app       /* 安装create-react-app,建议使用cnpm */create-react-app geekjc-antd-mobile    /* 使用命令创建应用,myapp为项目名称 */cd geekjc-antd-mobile                  /* 进入目录,然后启动 */npm start

注意:这里不提倡用faceback的yarn包管理器,因为笔者一开始用的是yarn,但是项目总是运行不起来^ _ ^ 但后面安装其它需要的包的时候可以用下yarn 安装

按以上执行,即可快速创建React开发环境。
打开http://localhost:3000/ 查看,出现如下图:

image.png
image.png

2. 环境配置介绍:

2.1 项目结构:

生成项目后,脚手架为了“优雅”... ...隐藏了所有的webpack相关的配置文件,此时查看myapp文件夹目录,会发现找不到任何webpack配置文件。执行以下命令:

yarn eject

再查看geekjc-antd-mobile 文件夹,可以看到完整的项目结构:

image.png
image.png

2.2 项目配置介绍

此处需要有npm、webpack的基础知识,充电传送门:Webpack——解决疑惑,让你明白 此篇文章是基于webpack 1.x 版本的,升级2.x版的可以看

查看package.json文件的scripts,

"scripts": {"start": "node scripts/start.js","build": "node scripts/build.js","test": "node scripts/test.js --env=jsdom"}

可知,运行时是直接执行scripts文件目录下的js文件。

其中start.js为开发环境,build.js为打包脚本。

开发环境,代理请求
查看start.js, Facebook基本为每项配置都写了详尽的注释,

start.js脚本启动了dev-server, 这里需要了解的是

function addMiddleware(devServer){... ...这个函数调用http-proxy-middleware模块,将代理请求,代理地址在package.json中添加}

在package.json中添加字段proxy,开发环境下dev-server将会自动转发请求:

"proxy": "https://www.geekjc.com"

SASS、LESS等CSS预处理器配置
Facebook官方在create-react-app升级到某一版本,突然丢掉了默认对sass、less等预处理器的支持,官方文档说明
于是,只能自己动手,在config目录下,webpack.config.dev.js 和 webpack.config.prod.js文件,没有抽出 loader、postcss之类一般共用的配置,于是,在两个文件夹都要一起配置,也可以抽出共用部分,以便维护。

这里以webpack.config.dev.js举例,webpack.config.prod.js一样配置即可:

LESS-loader:

1、命令行,在当前目录执行:

npm install less-loader --save-dev

2、找到webpack.config.dev.js文件中 loaders中的加入(值为数组),排除less文件,否则将被'url-loader'捕获。

{loader: require.resolve('file-loader'),exclude: [/\.js$/, /\.html$/, /\.json$/,/\.svg$/, /\.less$/],options: {name: 'static/media/[name].[hash:8].[ext]',},
},

3、loaders新增一项:

{test: /\.less$/,use: [require.resolve('style-loader'),require.resolve('css-loader'),{loader: require.resolve('postcss-loader'),options: {ident: 'postcss', // https://webpack.js.org/guides/migrating/#complex-optionsplugins: () => [pxtorem({rootValue: 100,propWhiteList: [],}),autoprefixer({browsers: ['last 2 versions', 'Firefox ESR', '> 1%', 'ie >= 8', 'iOS >= 8', 'Android >= 4'],}),],},},{loader: require.resolve('less-loader'),options: {modifyVars: { "@primary-color": "#1DA57A" },},},],
},

至此,LESS文件就可以正常打包了,SCSS文件类似,不再赘述。

3. antd-mobile的引入及配置

在命令行执行:

npm install antd-mobile --save

3.1 移动端高清方案

因0.8以后的版本引入移动端高清方案,因此需要在webpack等增加相应配置,必须配置!,官方说明
按官方说明配置即可。

3.2 按需引入

为减少打包后体积以及方便书写,可用babel-plugin-import插件,配置后引入模块可如下:

import { Button } from 'antd-mobile';

自动引入CSS和JS,无需再引入整个antd-mobile的整个CSS文件

使用如下:

命令行执行:

npm install babel-plugin-import --save-dev

安装完毕后,在webpack.config.dev.js按如下配置:

{test: /\.(js|jsx)$/,include: paths.appSrc,loader: require.resolve('babel-loader'),options: {plugins: [['import', { libraryName: 'antd-mobile', style: true }],],// This is a feature of `babel-loader` for webpack (not Babel itself).// It enables caching results in ./node_modules/.cache/babel-loader/// directory for faster rebuilds.cacheDirectory: true,},
},

4. 补充

用create-react--app 结合 antd-mobile有两种构建方式
具体可以查看在 create-react(-native)-app 中使用
注意查看升级指南,里面很详细了。

5. 完

至此,一个移动web开发环境就搭建完了 ,如果搭建过程遇到困难的可以查看本项目,项目地址:geekjc-antd-mobile

转载于:https://my.oschina.net/cllgeek/blog/1584721

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_717586.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6款强大的jQuery插件 创建和加强网站布局

Javascript打开了web设计的大门,给了Html和CSS更宽广的舞台。HTML5和CSS3又比从前进步了一大截。神奇的根源来自 JavaScript,它可以向你的网站布局中加入交互元素。以jQuery Masonry为例,它转换常规的布局,到一个真正的动态布局&a…

为你的网站介绍10个非常有用的jQuery插件

本文介绍的插件涉及图像、paypal支付、分页、导航等方面的内容。 1.AJAX-ZOOM 图像缩放 & Pan Gallery, 360 对象旋转 (Spin), 全屏视图. 在线演示 here . 2.(mb) verticalSlider 显示长列表的绝佳方式,在线演示 here . 3.More plugin 该插件主要用于评论…

网站的优化----首页优化---app调取服务端数据

高并发经常会发生在有大活跃用户量来访问网站的某个点,例如用户高聚集的业务场景中,如:抢购,促销等。为了让用户流畅的访问网站,来根据自己的业务设计适合系统的处理方案。 //对于APP网站首页数据,通常是有…

Yahoo!给出的34条网站加速方法

2019独角兽企业重金招聘Python工程师标准>>> 1. 减少HTTP请求 一个典型的http请求报文大概是这样的: GET /3.3.0/build/yui/yui-min.js HTTP/1.1Host: yui-s.yahooapis.comPragma: no-cacheCache-Control: no-cache... 虽然也就几行文字,但是…

网站漏洞修复之UEditor漏洞 任意文件上传漏洞

2019独角兽企业重金招聘Python工程师标准>>> UEditor于近日被曝出高危漏洞,包括目前官方UEditor 1.4.3.3 最新版本,都受到此漏洞的影响,ueditor是百度官方技术团队开发的一套前端编辑器,可以上传图片,写文字…

网站二次开发的总结

半个多月的时间,完成了网站的二次开发,其中,存在太多的问题,还是比较心烦的(一)首先就说我自己做的工作吧,自己在工作中做了什么,其实我的工作量很大的,logo的设计&#…

使用nginx的proxy_cache做网站缓存

2019独角兽企业重金招聘Python工程师标准>>> 文章源自网络 proxy模块中常用的指令时proxy_pass和proxy_cache.nginx的web缓存功能的主要是由proxy_cache、fastcgi_cache指令集和相关指令集完成,proxy_cache指令负责反向代理缓存后端服务器的静态内容&…

部署lamp动态网站(图解)

环境拓扑如下:1.两台虚拟机要互通 2.修改selinux 服务器133上: 1.安装需要的组件httpd,mariadb,php 2.重启服务 3.编辑测试默认网页(测试完后,删除) 4.设置防火墙 客户端139上:可见&…

读书笔记-01大型网站架构演化-思维导图

1.服务器分离? 随着业务发展,越来越多的用户访问导致网站性能越来越差,越来越多的数据导致存储空间不足,这时候就需要将网站进行分离。 2.使用缓存? 随着用户增多,数据库压力越来越大导致访问延迟想象越来越…

SEM优化教程第1讲—SEM是什么?SEM与SEO的区别?

一、SEM是什么?商户通过搜索引擎付费推广,让网民主动的找到商户,点击商户的广告,最后和商户产生联系或直接下单。 二、SEM的作用企业角度:企业付费给搜索引擎购买相关广告信息(按点击付费的)企业…

漫谈网站开发规范

任何一个项目或者系统开发之前都需要定制一个开发约定和规则,这样有利于项目的整体风格统一、代码维护和扩展。由于Web项目开发的分散性、独立性、整合 的交互性等,所以定制一套完整的约定和规则显得尤为重要。本文档将定制一系列约定和规则,…

MySQL百万级高并发网站实战攻略

为什么80%的码农都做不了架构师?>>> 在一开始接触PHP接触MYSQL的时候就听不少人说:“MySQL就跑跑一天几十万IP的小站还可以,要是几百万IP就不行了”,原话不记得了,大体就是这个意思。一直也没有好的机会去…

Nginx配置HTTPS证书网站

前提: 1、主机需要先安装openssl 2、编译安装nginx时,要加上--with-http_ssl_module 这个ssl模块 现在开始配置:(我当时配置时,主机已安装了openssl,但编译时没有加载http_ssl_module模块,所以…

全球顶尖的移动交互设计网站集萃 转

2019独角兽企业重金招聘Python工程师标准>>> Android App Patterns http://www.android-app-patterns.com/category/grid Androidux http://androidux.com/ Uxarchive http://www.uxarchive.com/ Lovely UI http://www.lovelyui.com/ Mobile Patterns h…

PHP使用Apache 中的ab 测试网站的压力性能

打开Apache服务器的安装路径(我用的是 WampServer)在bin目录中有一个ab.exe的可执行程序它就是要介绍的压力测试工具。 在Windows系统的命令行下进入ab.exe程序所在目录执行ab.exe程序。注意直接双击无法正确运行。<喎"http://www.2cto.com/kf/ware/vc/" target&q…

网站建设过程中容易被忽略的元素

网站从建设到真正运营&#xff0c;会忽略很多元素。其实一个网站能否达到预期的效果&#xff0c;网站建设与网站优化做好的同时&#xff0c;很关键一点&#xff0c;客户自身的问题。比如我们帮企业建设网站&#xff0c;网站提供的主要服务还是掌握在客户手上。下面福建SEO谈谈网…

Android上PhoneGap打包本地网站和在线网站

谢谢刚子提供这么个社区交流平台&#xff0c;特别感谢刚子提供上传权限&#xff0c; 哈哈&#xff0c;今天也发一个简单的Demo上来上来&#xff0c;给社区贡献一点绵薄之力。最近一直关注移动web开发&#xff0c;更多看的是web开发的程序的效果&#xff0c;还没有深入的去编程或…

利用HTTP Cache来优化网站

原文地址&#xff1a; http://www.cnblogs.com/cocowool/archive/2011/08/22/2149929.html 对于网站来说&#xff0c;速度是第一位的。用户总是讨厌等待&#xff0c;面对加载的Video和页面&#xff0c;是非常糟糕的用户体验。所以如何利用Cache来优化网站&#xff0c;值得深入研…

本土视频网站盈利艰难,海外会是新掘金场吗?

6月22日&#xff0c;爱奇艺会员数量突破1亿人&#xff0c;标志着中国本土视频网站之间的竞争进一步加剧。毕竟随着互联网人口红利消失&#xff0c;未来会员增速将会放慢&#xff0c;在多元化收入难以撑起视频网站成本前&#xff0c;会员制收入将是最重要的营收之一&#xff0c;…

网站漏洞检测之WordPress 5.0.0 修复方案

2019独角兽企业重金招聘Python工程师标准>>> 2019年正月刚开始&#xff0c;WordPress最新版本存在远程代码注入获取SHELL漏洞&#xff0c;该网站漏洞影响的版本是wordpress5.0.0&#xff0c;漏洞的产生是因为image模块导致的&#xff0c;因为代码里可以进行获取目录…