webpack,react,babel
window搭建webpack,react,babel傻瓜教程
首先现在的webpack教程已经很多了,写这篇的原因是因为自己在从小白开始的搭建过程中,并没有找到比较好的教程,花费了很多的时间,so 有了这篇博客,方便小白同学学习。
node环境在这里不在赘述,package.json文件如下

{
  "name": "wn",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --hot --inline"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.13.2",
    "babel-preset-react": "^6.11.1",
    "css-loader": "^0.23.1",
    "node-sass": "^3.8.0",
    "react": "^15.3.0",
    "react-dom": "^15.3.0",
    "sass-loader": "^4.0.0",
    "style-loader": "^0.13.1",
    "stylus": "^0.54.5",
    "stylus-loader": "^2.1.1",
    "url-loader": "^0.5.7",
    "webpack": "^1.13.1",
    "webpack-dev-server": "^1.14.1"
  }
}

这里面有个坑,就是babel-preset-react这个插件,babel-loader中es2015这个插件是解析es6语法的,babel-preset-react这个插件是解析react语法的,在mac中这个插件集成在了es2015中,但是window中并没有集成,导致编译失败,这点大家注意。
拿到这个文件,直接命令行npm install安装完毕。ps:"start": "webpack-dev-server --hot --inline"这项配置是输入npm start时执行的指令,这里会启动localhost:8080接口,在这个页面会保存后自动刷新。
接下来是webpack.config.js文件,这里面的注释我写的还算多,不在解释。
这里有官网的loader列表,大家可以自行添加使用http://webpack.github.io/docs/list-of-loaders.html

module.exports = {
    //在log中定位源文件位置,跟sass的sourcemap一样
    devtool: 'source-map',
    //webpack-dev-server配置
    devServer: {
        historyApiFallback: true,
        hot: true,
        inline: true,
        progress: true,
    },
    //页面入口文件配置
    entry: 'page/index.js',
    //入口文件输出配置
    output: {
        filename: 'bundle.js'
    },
    module: {
        //加载器配置,这些loader会解析不同格式的文件,然后一起打包成js文件
        loaders: [
            { test: /\.css$/, loader: 'style-loader!css-loader' },
            { test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
            { test: /\.styl$/, loader: 'style-loader!css-loader!stylus-loader'},
            { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'},
            { test: /\.js$/, loader: "babel-loader", query: {presets: ['es2015','react']}}
        ]
    },
    //其它解决方案配置
    resolve: {
        //自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名
        extensions: ['', '.js', '.json', '.scss', '.styl'],
    }
};

下面是首页index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World app</title>
</head>
<body>
<div id='app'></div>
</body>
<script type="text/javascript" src='bundle.js'></script>
</html>

index.js文件

import React from 'react'
import ReactDOM from 'react-dom' ReactDOM.render(
<div>hello world</div>,
document.getElementById('app')
)

文件目录

在根目录执行npm start后,打开浏览器http://localhost:8080,每次修改文件后页面都会自动刷新,这个打包在内存中,不会生成打包后扥文件。
bundle文件在执行webpack命令后会打包出来。
下一篇会加上react-router和redux等更高级的库,再见!
webpack,react,babel的更多相关文章
- vue,react,angular
		
一.Vue.js: 其实Vue.js不是一个框架,因为它只聚焦视图层,是一个构建数据驱动的Web界面的库. Vue.js通过简单的API(应用程序编程接口)提供高效的数据绑定和灵活的组 ...
 - 浅析angular,react,vue.js jQuery使用区别
		
前端越来越混乱了,当然也可以美其名曰:繁荣.当新启动一个前端项目,第一件事就是纠结:使用什么框架,重造什么轮子? PS:大牛留言讨论那么,希望看完此篇,能够给你一个清晰的认识,或者让你更加地纠结和无所 ...
 - 浅析angular,react,vue.js jQuery-1
		
作者:尚春链接:https://www.zhihu.com/question/38989845/answer/79201080来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...
 - window搭建webpack,react,babel傻瓜教程
		
首先现在的webpack教程已经很多了,写这篇的原因是因为自己在从小白开始的搭建过程中,并没有找到比较好的教程,花费了很多的时间,so 有了这篇博客,方便小白同学学习. node环境在这里不在赘述,p ...
 - 一个webpack,react,less,es6的DEMO
		
1.package.json如下 { "name": "demo", "version": "1.0.0", " ...
 - 网页的cdn引用地址,js,react,bootstrap
		
react+----这三个够用了 <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js">< ...
 - 使用 TypeScript,React,ANTLR 和 Monaco Editor 创建一个自定义 Web 编辑器(二)
		
译文来源 欢迎阅读如何使用 TypeScript, React, ANTLR4, Monaco Editor 创建一个自定义 Web 编辑器系列的第二章节, 在这之前建议您阅读使用 TypeScrip ...
 - 使用vue,react,angular等框架和不使用框架使用jquery的优缺点
		
jquery和vue react等框架有着本质上的区别,从jquery到vue.react 或者说是到mvvm的转变,是一个思想的转变,是将原有的直接操作dom的思想转变到操作数据上去. vue更关注 ...
 - sublime text 3 ,React,html元素自动补全方法(用Emmet写法写jsx中的html)
		
1. 安装emmet: Preferences -> Package Control -> Install Package -> emmet 2. 配置emmet: Preferen ...
 
随机推荐
- 使用dom4j生成xml字符串,以及解析xml字符串
			
基于dom4j-1.6.1.jar import java.io.IOException; import java.io.StringWriter; import java.util.ArrayLis ...
 - javascript 要注意的事项
			
记入一些容易出错的地方 function someClass() { this.name = null; 或 undefined } var obj = new someClass(); consol ...
 - mvn 使用中的错误
			
出现这种错误的时候:mvn Error building POM may not be this project's POM,报的是那个jar 包,就删除那个jar 包,重新mvn clean ins ...
 - 【HDOJ】4541 Ten Googol
			
打表的大水题. /* 4541 */ #include <cstdio> #include <cstdlib> #include <cstring> , , , } ...
 - BZOJ1690: [Usaco2007 Dec]奶牛的旅行
			
1690: [Usaco2007 Dec]奶牛的旅行 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 552 Solved: 286[Submit][St ...
 - http协议使用实例
			
#include <stdio.h>#include <windows.h>#include <wininet.h> #define MAXSIZE 1024#pr ...
 - HDU 5496 - BestCoder Round #58 - Beauty of Sequence
			
题目链接 : http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=637&pid=1002 思路 : 考 ...
 - java与数据结构(8)---java实现链队列
			
链队列 实际上就是单链表,只是规定了删除在队头进行,添加在队尾进行. 链队列代码结构 package list.queue; public interface Queuable<T>; p ...
 - 安装nodejs 后运行 npm 命令无响应处理方法
			
安装和卸载过nodejs, 也编辑过 C:\Users\{账户}\下的.npmrc文件. 再全新安装nodejs ,运行npm 命令,无响应. 处理方法,删除C:\Users\{账户}\下的.npmr ...
 - JAVA 将接口的引用指向实现类的对象
			
有一个很简单的例子,java.util中的类ArrayList实现了接口List则生成ArrayList对象时可用以下语句. List list=new ArrayList(); 也就是说所有实现了接 ...