zoukankan      html  css  js  c++  java
  • 一个webpack,react,less,es6的DEMO

    1.package.json如下

    {
      "name": "demo",
      "version": "1.0.0",
      "description": "一个简单的示例",
      "main": "index.js",
      "dependencies": {
        "babel-core": "^5.8.25",
        "babel-loader": "^5.3.2",
        "style-loader": "^0.13.0",
        "css-loader": "^0.23.0",
        "less": "^2.5.3",
        "less-loader": "^2.2.2",
        "react": ">=0.14.2",
        "react-dom": ">=0.14.2"
      },
      "author": "sam wu",
      "license": "ISC"
    }
    
    

    为什么不用babel6.2呢?原因是它插件机制虽好,但是打包太慢了。
    所以用回babel5.8,速度可以。
    关于^符号就不说了吧。
    ^1.2.3 >=1.2.3 < 2.0.0
    ^0.2.3 >=0.2.3 < 0.3.0
    ^0.0.3 >=0.0.3 < 0.0.4
    ^1.2.3-beta.2 >=1.2.3-beta.2 < 2.0.0
    webpack-dev-server 1.11版本有路径超长问题,超过windows的256字符限制。无法使用,无法删除。
    用cygwin32,rm-rf命令删除吧。

    2.webpack.config.js

    var webpack = require('webpack');
    module.exports = {
        entry: [
          "./index.js"
        ],
        output: {
            path: './build',
            filename: "bundle.js"
        },
        module: {
            loaders: [
                { test: /.js$/, loaders: ["babel"], exclude: /node_modules/ },
                {
                    test: /.less$/,
                    loader: "style!css!less"
                }
            ]
        }
    };
    

    less-loader还得依赖css-loader,css-loader还得依赖style-loader。
    exclude嘛,就是忽略这个目录打包。

    3.index.js

    import './index.less';
    let React = require('react');
    let ReactDOM = require('react-dom');
    
    let World = React.createClass({
    	render(){
    		return (
    			<span>World is beautiful!Yes...!</span>
    		)
    	}
    })
    
    let Hello = React.createClass({
    	render(){
    		return(
    			<div>
    				<h1>Hello,boy!</h1>
    				<World />
    			</div>
    		)
    	}
    })
    
    ReactDOM.render(
      <Hello />, 
      document.getElementById("test")
    );
    

    4.index.less

    body{
    	#test{
    		 300px;
    		height: 200px;
    		border: 1px solid #ddd;
    		color: blue; 
    	}
    }
    

    5.index.html

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<title>hello boy</title>
    </head>
    <body>
    	<div id="test"></div>
    </body>
    <script type="text/javascript" src="./build/bundle.js"></script>
    </html>
    

    6.执行打包

    webpack -w
    监听文件变化,实时打包
    webpack -d
    提供SourceMaps,方便调试

  • 相关阅读:
    gulp serve 报错 gulp.ps1
    执行git命令时出现fatal: 'origin' does not appear to be a git repository错误
    利用 SASS 简化 `nth-child` 样式的生成
    git的一些常用命令
    回调函数
    匿名函数
    css消除行内元素的间隙
    @click.native的使用
    Element-ui 下拉列表 选项过多时如何解决卡顿问题
    vue组件通信(父子之间,兄弟之间)
  • 原文地址:https://www.cnblogs.com/samwu/p/5003809.html
Copyright © 2011-2022 走看看