极简版 react+webpack 脚手架
目录结构
asset/
- css/
- img/
src/
- entry.js ------------------------ 入口文件
.babelrc
index.html
package.json
webpack.config.js
运行命令
- 安装依赖:
npm install - 运行项目:
npm start
配置预览
package.json:
{"name": "react_webpack_demo","version": "1.0.0","description": "a demo using react and webpack","main": "index.js","scripts": {"start": "webpack-dev-server --port 8080 --hot --inline --progress --colors --devtool eval"},"author": "Ruth","license": "ISC","devDependencies": {"babel-core": "^6.18.2","babel-loader": "^6.2.7","babel-preset-es2015": "^6.18.0","babel-preset-react": "^6.16.0","css-loader": "^0.25.0","extract-text-webpack-plugin": "^1.0.1","node-sass": "^3.11.2","react-router": "^3.0.0","sass-loader": "^4.0.2","style-loader": "^0.13.1","webpack": "^1.13.3","webpack-dev-server": "^1.16.2"},"dependencies": {"react": "^15.3.2","react-dom": "^15.3.2"}}
webpack.config.js:
var webpack = require('webpack');// css 单独打包,使用该插件后就不需要配置style-loader了// 本来是内联在最终的网页里,现在通过外联方式,可以在/dist文件夹下找到单独的css文件var ExtractTextPlugin = require('extract-text-webpack-plugin');module.exports = {entry: {index: './src/entry.js', // 唯一的入口文件vendor: ['react'] // 这里是依赖的库文件配置,和CommonsChunkPlugin配合使用可以单独打包},output: {path: '/dist', //打包后的文件存放的地方filename: 'bundle.js',publicPath: 'http://localhost:8080/dist/' //启动本地服务后的根目录},devServer: {historyApiFallback: true,hot: true,inline: true,progress: true},resolve: {extensions: ['', '.js', '.jsx']},module: {loaders: [{test: /\.(js|jsx)$/,loader: 'babel',// 可以单独在当前目录下配置.babelrc,也可以在这里配置query: {// presets: ['es2015', 'react']},// 排除 node_modules 下不需要转换的文件,可以加快编译exclude: /node_modules/}, {test: /\.css$/,loader: ExtractTextPlugin.extract("style", "css")}, {test: /\.scss$/,loader: ExtractTextPlugin.extract("style", "css!sass")}, {test: /\.(png|jpg|gif)$/,loader: 'url?limit=819200'}]},plugins: [new ExtractTextPlugin('main.css'),new webpack.optimize.CommonsChunkPlugin({name: 'vendor',filename: 'vendor.js'})]};
.babelrc:
{"presets": ["react","es2015"],"plugins": []}
其他
需要更多其它配置,请参考 webpack_scaffold
github地址:react\_webpack\_scaffold
参考资源
后记
搞配置的过程中,一直报错,原来是自己没有安装 babel-preset-es2015 和 babel-preset-react,导致即使在 .babelrc 中已经配置了还报错T_T,具体参看 Babel 入门教程
极简版 react+webpack 脚手架的更多相关文章
- Underscore源码阅读极简版入门
看了网上的一些资料,发现大家都写得太复杂,让新手难以入门.于是写了这个极简版的Underscore源码阅读. 源码: https://github.com/hanzichi/underscore-an ...
- 200行代码实现简版react🔥
200行代码实现简版react
- js消除小游戏(极简版)
js小游戏极简版 (1) 基础布局 <div class = "box"> <p></p> <div class="div&qu ...
- SimpleThreadPool极简版
package com.dwz.concurrency.chapter13; import java.util.ArrayList; import java.util.LinkedList; impo ...
- 纯粹极简的react状态管理组件unstated
简介 unstated是一个极简的状态管理组件 看它的简介:State so simple, it goes without saying 对比 对比redux: 更加灵活(相对的缺点是缺少规则,需要 ...
- react diff 极简版
为什么react这么快呢 ? 因为react用了虚拟DOM: 但是每次虚拟DOM转真实DOM不也是很浪费性能吗 ? nice,所以关键点在Diff算法这里,去对比新旧DOM树,而后通过补丁去更新到真实 ...
- 极简版ASP.NET Core学习路径及教程
绝承认这是一个七天速成教程,即使有这个效果,我也不愿意接受这个名字.嗯. 这个路径分为两块: 实践入门 理论延伸 有了ASP.NET以及C#的知识以及项目经验,我们几乎可以不再需要了解任何新的知识就开 ...
- 【极简版】SpringBoot+SpringData JPA 管理系统
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在上一篇中已经讲解了如何从零搭建一个SpringBo ...
- 【极简版】OpenGL 超级宝典(第五版)环境配置 VS2010
事先声明:该教程仅适用于VS2010环境下超级宝典第五版的配置 第一步:下载示例代码和环境包: 链接:https://pan.baidu.com/s/1llRRQ8ymBgMGuXp5M50pJw 提 ...
随机推荐
- 关于Youtube URL的十个技巧
你一定很熟悉Youtube了,知道它是一个视频分享网站.是的,youtube目前十分流行,你也许会常常访问.这里有一些关于youtube url的技巧,了解了这些技巧,你就可以更好的利用youtube ...
- Unity3d 脚本相互调用
unity中三种调用其他脚本函数的方法 第一种,被调用脚本函数为static类型,调用时直接用 脚本名.函数名().很不实用…… 第二种,GameObject.Find("脚本所在物体名& ...
- 继续Kanzi
转眼间,Kanzi已经发展到3.3版本了,之前研究过的东西,今天有空下了个版本跟进更新看看有没有什么变化.新的引擎跟以前2.x版本有很大的差别.新引擎增加了很多新功能(包括局部刷新技术),也跟随大潮加 ...
- C library function - rewind()
Description The C library function void rewind(FILE *stream) sets the file position to the beginning ...
- nodejs 访问mysql
安装 $ npm install mysql 简介 这个一个mysql的nodejs版本的驱动,是用JavaScript来编写的.不需要编译 这儿有个例子来示范如何使用: var mysql = re ...
- JDK中的native2ascii命令详解
1.native2ascii简介: native2ascii是sun java sdk提供的一个工具.用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码 ...
- iOS开发 ReactiveCocoa入门教程 第一部分
作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation).但是这些事件都用不同的方式来处理 ...
- phalcon: update修改数据却变成了insert插入数据
phalcon: 在对表进行操作是,update修改数据却变成了insert插入数据. 发现,update的时,无论怎么加where都会变成了insert插入数据. 检查了一下表,原来是表没有 主键引 ...
- Python之路 day1 用户登录多次被锁定
编写登陆接口: 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 #Author:ersa import getpass,os,sys #读取账户信息到内存中 try: accounts_fil ...
- JavaWeb基础: 获取资源文件
Web工程在编译构建完毕以后,需要部署到Tomcat上运行,资源的硬盘路径也会随着改变.要想对资源文件进行读写操作需要获取其硬盘地址,在Web工程中通常通过ServletContext/ClassLo ...