react+webpack基础学习配置

Posted 落落月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react+webpack基础学习配置相关的知识,希望对你有一定的参考价值。

最近学习react,公司的项目是使用create-react-app来搭建的,而我想重新使用node+mysql+react来搭建一个新的博客。

今天尝试从零开始搭建一个webpack+react项目,过程还算顺利。总结一下步骤:

1、创建一个项目文件夹Blog,cd进入文件夹目录,输入

npm init -y

生成package.json文件;

 

2、工程目录创建,如下如是我的工程目录

public是webpack打包后生成的文件夹,src是逻辑组件文件夹,assets是静态文件

webpack.config.js用来配置webpack;.babelrc配置babel

 

3、创建必须文件

在src文件夹中创建入口文件index.js,创建文件夹conponents用来承载组件;创建App,js作为组件入口文件;

 

4、安装依赖,以下为我所安装的依赖

 

5、webpack的配置,重中之重

var path = require(\'path\');

module.export = {
  mode:\'development\',//设置模式
  entry:path.resolve(__dirname,\'src\'),//入口文件  
  output:{
     path:path.resolve(__dirname,\'public\'),//出口文件夹
     filename:\'build.js\'//输出的文件名称
  },
  
  modules:{
    rules:[
       {
          test:/\\.js$/,
          exclude:/node_modules/,
          loader:\'babel-loader\',
       },
       {
           test:/\\.scss$/,
           loader:[\'style-loader\',\'css-loader\',\'sass-loader\']
        }
    ]
  },
   devServer:{
        inline:true,//实时更新
        open:true,//更新后自动打开浏览器
        contentBase:path.join(__dirname,\'./public\')//指向根目录位置,也就是index.html文件位置
    }
}    

.babelrc配置

{
   "presets":["es2015","react"],
   "plugins":["transform-object-rest-spread"]
}

 

6、项目开始

在src的index.js入口文件下

import React from \'react\';
import ReactDOM from \'react-dom\';
import App from \'./components/App\';

ReactDOM.render(<App />,document.getElementById(\'app\'));

components目录下的组件入口文件App.js

import React from \'react\';

class App extends React.Component {
  render() {
    return (
       <div>
            Hello World!
       </div>
    );
  }  
}        

export default App;

  

7.运行npm start;要在package.json中的scripts字段中设置start命令内容:

"start":"webpace-dev-server --devtool eval --progress --colors"

即可启动项目;如果端口冲突,可在webpack.config.js文件下设置devServer的port属性;

以上是关于react+webpack基础学习配置的主要内容,如果未能解决你的问题,请参考以下文章

react学习笔记之环境配置

react学习总结

小白学react之由FOUC引发的一次webpack变革

基于webpack的React项目搭建

webpack3终极配置及其优化(react)

react 体验[更新中]