WEB前端使用 webpack + reack 搭建框架 01 基础框架
来源:互联网 发布:packageinfo.java作用 编辑:程序博客网 时间:2024/05/29 12:49
最近项目有可能会有道react,所以提前研究了一下react,其中遇到很多问题,把过程记录下来希望对跟我一样的新手有一些帮助。
首先我们用到react框架,react框架中支持ES6以及JSX语法,但是目前的浏览器对ES6的支持程度不一样,所以需要将ES6及JSX转化为ES5然后才能让浏览器识别,这个转化过程我们就用到了babel。webpack是一个模块打包器(功能很强大,我们暂时只使用比较简单的功能),可以将多个模块打包到一块。
PS:以下皆为windows平台。
1.首先我们要安装node.js
可以到官网下载,点击下载。使用命令 node -v
可以查看版本号:
2.创建项目结构
首先创建项目文件夹 react-learn ,然后 在项目内分别创建 app、public 两个文件夹,app用于存放书写的源码,public用于存放编译后的代码。我们得到如下的结构:
3. 生成package.json并安装依赖
在项目目录打开命令工具执行npm init
,然后一直回车就可以了,你可以使用npm init --yes
快速生成
PS:我们并不会把我们的代码上传的node供其他人使用,所以对package.json的内容不必十分关心。
首先安装webapck
PS:如果觉得npm比较慢,可以使用淘宝镜像 cnpm,只需将下面的命令中的npm替换为cnpm即可。
-- 将webpack全局安装npm install -g webpack -- 将webpack安装到项目并写入开发依赖中npm install --save-dev webpack
我们还用到的依赖有:
babel-core(babel 核心功能)
babel-loader(webpack使用loader调用babel节本处理文件)
babel-preset-es2015(babel处理ES6套件)
babel-preset-react(babel处理react套件)babel处理react套件
react(react核心)react核心
react-dom(react处理DOM相关)
我们可以使用下面的命令将这些依赖全部增加到项目中:
npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react react react-dom
然后我们的package.json文件应该是这个样式的:
{ "name": "react-learn", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "babel-core": "^6.25.0", "babel-loader": "^7.1.1", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "react": "^15.6.1", "react-dom": "^15.6.1", "webpack": "^3.0.0" }}
4. 书写react的js文件
我们在app/js文件夹下增加test.js,内容为:
import React from "react";class Test extends React.Component { constructor(props) { super(props); } render() { return <div>Hello,World!</div> }}export default Test;
然后在app/js文件夹下增加main.js,作为整个项目唯一的入口(最上层,该JS里不定义任何组件,为后期热加载做铺垫),内容为:
import React from "react";import { render} from "react-dom";import Test from './test.js';render(<Test />, document.getElementById('root'));
这时我们的目录结构为:
5.配置webpack将两个文件打包为一个js
在项目根目录增加webpack.config.js ,内容为:
module.exports = { devtool: 'eval-source-map', //配置生成Source Maps,选择合适的选项 entry: __dirname + "/app/js/main.js", //已多次提及的唯一入口文件 output: { path: __dirname + "/public/js", //打包后的文件存放的地方 filename: "bundle.js" //打包后输出文件的文件名 }, module: { loaders: [{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }] }}
其中:
devtool:为配置生成Source Maps(使调试更容易),这里不进行叙述。
entry:指定入口文件
output:指定最终输出的文件,我们这里输出到public/js/bundle.js
loaders: 配置要使用的loaders 我们这里使用的babel-loader
PS:__dirname为node全局变量,指向当前文件目录。同时指定loader时不可以省略后面的-loader必须写全babel-loader(老版本可以只写babel)
在项目根目录增加.babelrc配置文件,内容为:
{ //需要用到的套件 "presets": ["es2015",'react'], //需要用到的插件 "plugins": []}
PS:window下无法创建名称为.babelrc的文件,使用sublime可以创建。(你也可以尝试其他的IDE)webpack在使用babel时会自动调用他的配置文件,当然这一块也可以在webpack的配置文件中进行设置,我个人还是把这一块拿出来看起来比较清晰。
这是我们的项目结构为:
现在,我们执行命令webapck
将两个源文件进行打包:
可以看到打包成功,在public下增加了js文件夹,里面有一个文件bundle.js
现在项目目录为:
6.书写HTML展示页面
在public文件夹下增加index.html,内容为:
<!DOCTYPE HTML><html lang="zh-CN"><head> <meta charset="UTF-8"></head><body> <div id="root"></div> <script src="js/bundle.js"></script></body></html>
使用浏览器打开可以看到页面:
PS:使用谷歌浏览器有时会因为无法访问本地文件报错,可以在启动时增加命令参数–allow-file-access-from-files
我们可以使用 webpack -w 命令来监听文件的变化,然后手动刷新页面查看。当然,我们后续还有更好的解决办法。
参考文章:
http://www.jianshu.com/p/42e11515c10f
- WEB前端使用 webpack + reack 搭建框架 01 基础框架
- WEB前端使用 webpack + reack 搭建框架 02 本地服务 与 热替换(react-hot-loader)
- vue前端开发项目框架搭建(node+webpack+vue)
- 使用yeoman搭建react-webpack框架的学习
- struts2框架基础web环境搭建
- 基于react+redux+webpack的前端框架
- webpack+vue构建前端框架简单实例
- Web前端开发框架
- web前端框架选型
- python web前端框架
- web前端框架
- Web前端框架
- Web 前端开发框架
- web前端框架推荐
- web前端框架
- web前端开发框架
- Web前端框架
- bootstrap web前端框架
- 端口分类调研
- OC与swift相互调用
- 在python的web框架Django中使用SQL Server
- amaze ui日期选择器
- 初级中级高级iOS的一些面试题
- WEB前端使用 webpack + reack 搭建框架 01 基础框架
- PHP开发接口使用RSA进行加密解密方法
- <NOIP> 17 . P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
- java面试考点精讲视频教程!
- linux下的缓存机制及清理buffer/cache/swap的方法梳理 【转】
- 如何让.NET Core应用的配置与源文件保持同步?
- POJ 3207 Ikki's Story IV
- LINUX下tomcat的jvm编码修改
- redis配置认证密码