加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

webpack入门+react环境配置

发布时间:2020-12-15 05:08:51 所属栏目:百科 来源:网络整理
导读:小结放在前:这篇文章主要是为下一篇的react提前铺好路,webpack是一个前端资源模块化管理和打包工具,说白了就是方便我们管理自己的常用的一些代码,比如你开发中用到sass以及jade同时用到es6,开发时你不可能改动某个地方就挨个命令去转换在到浏览器去看效

小结放在前:这篇文章主要是为下一篇的react提前铺好路,webpack是一个前端资源模块化管理和打包工具,说白了就是方便我们管理自己的常用的一些代码,比如你开发中用到sass以及jade同时用到es6,开发时你不可能改动某个地方就挨个命令去转换在到浏览器去看效果,那样效率是非常低的。所以webpack帮我们省去了那些多余的步骤

webpack 基本安装

开始前还是万万不能缺少的安装:

npminstallwebpack-g

安装完接着是建个文件夹新建一个package.json依赖管理文件

npminit//运行后按提示填写当然嫌麻烦就直接下一步下一步就好无伤大碍

现在安装我们的webpack

npminstallwebpack--save-dev//--save-dev的意思是将这个安装过程记录到我们的package.json依赖管理文件里

完后新建一个文件并命名为webpack.config.js(如同我们的常规的 gulpfile.js、Gruntfile.js),就是一个配置项,告诉 webpack 它需要做什么。

打开webpack.config.js引入webpack

varwebpack=require('webpack');

webpack 基本入门

webpack主要结构分三个:入口文件配置(entry)、入口文件输出配置(output)、加载器配置(module)、其他配置(resolve)

  1. 入口文件配置

entry:{index:'./src/main.js'
},
  1. 入口文件输出配置

//配置编译成功后文件存放的位置output:{path:'dist/js',//编译后文件所在的文件夹filename:'[name].js'//根据入口文件名命名编译后的文件名,编译后文件还是叫main.js
},255);" class="list-paddingleft-2"> 
 
  • 加载器配置

  • module:{//最关键的一块配置,它告知webpack每一种文件都需要使用什么加载器来处理loaders:[
    {test:/.css$/,loader:'style-loader!css-loader'},{test:/.js$/,loader:'jsx-loader?harmony'},{test:/.scss$/,loader:'style!css!sass?sourceMap'},{test:/.(png|jpg)$/,loader:'url-loader?limit=8192'}
    ]
    },255);" class="list-paddingleft-2"> 
     
  • 其他配置

  • resolve:{//自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名
    extensions:['','.js','.json','.scss']
    
    }

    ok!好记忆不如烂笔头,现在我们来自己搭建一个react的开发环境吧!

    先参考我的目录结构

    mak

    build存放编译后的文件,development存放react代码的文件夹,components存放react组件的文件夹,node_modules存放安装的依赖

    我们先要安装一些项目依赖:

    npminstall--save-devreactreact-domnpminstall--save-devbabel-corebabel-loaderbabel-preset-es2015babel-preset-reactnpminstall--save-devstyle-loadercss-loadersass-loaderurl-loadernpminstall--save-devwebpack-dev-server//自动刷新修改后的结果,在webpack.config.js中配置webpack-dev-server,
    //在这里需要修改下entry的路径,给它加一个webpack/hot/dev-server,后文会提到

    要是安装失败那就分开一个个装,还不行就用淘宝的cnpm装 ,还不行就看看你的node和npm的环境变量等配置(亲身体会T_T)

    npminstallcnpm-g

    行!接下来是文件的内容

    webpack.config.js文件的配置如下:

    varpath=require('path');varwebpack=require('webpack');//加载webpack依赖包module.exports={
    entry:['webpack/hot/dev-server',path.resolve(__dirname,'./development/main.js')],//入口文件并添加了热加载
    output:{
    path:path.resolve(__dirname,'./build'),filename:'bundle.js'//输出文件
    },module:{
    loaders:[
    {
    test:/.js?$/,exclude:/(node_modules|bower_components)/,loader:'babel',query:{
    presets:['es2015','react']
    }//将react编译成js文件
    },{test:/.css$/,//打包css文件
    {test:/.scss$/,//编译sass文件
    {test:/.(png|jpg)$/,loader:'url-loader?limit=8192'}
    //对图片进行打包
    ]
    },plugins:[newwebpack.HotModuleReplacementPlugin()
    ],resolve:{//自动扩展文件后缀名
    extensions:['','.scss','.ts']
    }
    };

    main.js内容如下:

    letReact=require('react');letReactDOM=require('react-dom');letAppComponent=require('./components/index.js');
    ReactDOM.render(<AppComponent/>,document.getElementById('content'));

    index.js内容如下:

    varReact=require('react');varProductBox;
    ProductBox=React.createClass({
    render:function(){return(<divclassName="productBox">
    helloreact&es2015&webpack!!!</div>
    );
    }
    });module.exports=ProductBox;

    index.html内容如下:

    <!DOCTYPEhtml><html><headlang="en">
    <metacharset="UTF-8">
    <title>ReactProject</title></head><body><scriptsrc="http://localhost:8080/webpack-dev-server.js"></script><divid="content"></div><scriptsrc="./bundle.js"></script></body></html>

    将上面的文件写好后并放到对应文件夹内运行命令npm run build dev,成功后浏览器访问地址location:8080,就会显示出对应界面

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读