React 项目
1、项目依赖安装? (模板就是一套,基础框架,打个包即可) 项目依赖安装 将项目开发基础文件?react-mobx-starter-master.zip 解压缩,并用这个目录作为项目根目录 在项目根目录中,执行下面的命令,就会自动按照package.json的配置安装依赖模块 npm install? 或 npm i 安装 完成后,会生成一个目录 node_modules,里面是安装的所有依赖的模块 项目整体说明:(外面的index.html 是主页,src里的是模板) 初始化最关键的是 package.json: 项目的基本信息,--save-dev? --save 的所有依赖都在这里 配置文件详解 (node_modules 是package.json 生成的,所以不需要吧这个传到 git上) package.json (有了它,npm才能用) $ npm init 产生的文件,里边记录项目信息,所有项目的依赖 版本管理:
项目管理:webpack 代替了babel,修改配置后,会自动刷新 ? start 指定启动webpack 的dev server 开发用 WEB Server, 主要提供2个 功能,静态文件支持,自动刷新 和 热替换 HMR(Hot Module Replacement) === --hot 启动HMR ------: HMR可以在应用程序运行中替换,添加,删除模块,而无需重载页面,只把变化部分替换掉,不使用HMR则自动刷新会导致这个页面刷新. === --inline 默认模式,使用HMR 的时候建议开启inline 模式,热替换时 会有消息显示在控制台 build 使用webpack构建打包,对应npm run build start:用于开发 build:用于生产 项目依赖: devDependencies 开发时依赖,不会打包到目标文件中,对应 npm install xxx --save-dev 例如babel的一些依赖,只是为了转义代码,没必要发布到生产环境 dependencies :运行时依赖, 会打包到项目中 对应 npm install xxx? --save 开发时依赖: 版本号指定: 版本号,只安装指定版本号的 ~版本号: 如~1.2.3 表示 安装1.2.x中 最新版本,不低于1.2.3,但不能安装1.2.x ^版本号:如^2.4.1 表示安装2.x.x最新版本,不低于2.4.1 latest:最新版本 babel转译,因为开发用了很多ES6 语法,从6.x 开始的babel 拆分成很多插件,需要什么引入什么 css 样式相关的: css-loader? ? less? ? less-loader,stule-loader react-hot-loader react 热加载插件,希望改动保存后,直接在页面上直接反馈出来,不用手动刷新 source-map 文件打包,JS 会合并或者压缩,没法调试,用它来看js 原文件 是什么,source-map-loader也需要webpack的loader webpack 打包工具,2.4.1 发布于17-4,当前2.7.0 发布17-7 webpack-dev-server 启动一个开发的server 运行时依赖: antd ant design ,基于react实现,例如一些按钮等,蚂蚁金服开源的react 的UI 库,做中后台管理非常方便 axios 异步请求支持 (promise实现) polyfill 解决浏览器api 不支持的问题,写好polyfill就让你的浏览器支持,帮你抹平差异化 react 开发的主框架 react-dom 支持 DOM react-router 支持路由 react-router-dm DOM绑定路由 mobx 状态管理库,透明化 mobx-react? mobx-react-devtools,开发使用的是Mobx 和 Redux (Mobx小巧,好用) babel 配置 ? webpack 配置(两个文件 ) webpack.config.dev.js 这是一个符合 Common.js 的模块 module.exports导出
devtool: ‘source-map‘,
生成及如何生成source-map 文件
source-map 适合生成环境使用,会生成完成Sourcemap独立文件
由于在Bundle 中添加了引入注释,所以开发工具知道如何找到Sourcemap
entry 程序入口 描述入口,webpack 会从入口开始,找出直接或间接地模块和库,最后输出为bundles文件中 entry 如果是一个字符串,定义就是入口文件 如果是一个数组,数组中每一项都会执行,里面包含入口文件,另一个参数可以用来配置一个服务,我们致力配置的是热加载插件,可以自动刷新 output 输出(客户端在哪个位置 可以看到 打包好的js文件) 告诉webpack输出bundles到哪里,如何命名 filename定义输出的bundle的名称 path 输出目录是__dirname + ‘dist‘, 名字叫做bundle.js? __dirname 是nodejs 中获取当前js 文件所在的目录名 publicPath 可以是绝对路径或相对路径,一般会以 /? 结尾, /assets/ 表示网站跟目录下assets 目录下 resolve解析 设置模块如何被解析 extensions 自动解析扩展名, ‘.js’ 的意思是,如果用户导入模块的时候不带扩展名,它会试补全。 nodule模块 如何处理不同的模块 rules 匹配请求的规则,以应用不同的加载器,解析器等
test 匹配条件的 exclude 排除的,/node_nodules/ 打包排除目录 , 这一句一定要有,否则,编译就把这个目录下所有文件也拿进来,巨大无比。 use 使用模块的UseEntries 列表中lodar rules 中对 .js 结尾的但不在node_modules 目录的文件使用转义babel-loader ?和热加载器 loader 加载器: style-loader 通过<style> 标签吧css 添加到DOM 中 css-loader 加载css less-loader 对less的支持 LESS css 好处简单易学,但是坏处是没有模块化,复用的概念,因为他不是语言 LESS 是一门CSS的预处理语言,扩展了CSS ,增加了变量,Mixin,函数等开发语言的特点,从而讲了css的编写 LESS本身是一套语法规则及接下,将写好的less? 解析成css,less可以使用在浏览器端和服务器端 服务器不认less: 1、官方提供js ,将less 转为 css 2、或者直接转为css,直接发布css 安装: npm? install? less? --save-dev 根目录创建z.less
转换:(根目录下就多了一个css文件)
z.css文件
plugins:webpack 的插件
devServer, 开发用server
compress启动gizp port 启动端口 hot 启用HMR proxy 指定访问 /api 开头 url 都代理到 http:// 127.0.0.1:8080 去 ? vscode 配置: jsconfig.json 是vscode 的配置文件,覆盖当前配置
启动项目:
目录结构: ? ? 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |