资讯专栏INFORMATION COLUMN

React结合webpack的具体使用

LeexMuller / 3062人阅读

摘要:结合的具体使用我们一般是使用进行安装的,这里我为大家推荐一款淘宝出的,这个和差不多,但是比安装的要快很多安装命令搭建环境初始化一个文件安装全局安装局部安装安装来把格式的代码编译成安装来转译代码安装转移的插件,

React结合webpack的具体使用

我们一般是使用npm进行安装的,这里我为大家推荐一款淘宝出的cnpm,这个和npm差不多,但是比npm安装的要快很多;

安装命令

npm install cnpm -gd
搭建webpack环境

初始化一个package.json文件

npm init -y

安装webpack

//全局安装
npm install webpack -gd

//局部安装
npm install webpack --save-dev

安装babel-loader来把jsx格式的代码编译成javascript

cnpm install --save-dev babel-loader

安装babel-core来转译代码

cnpm install --save-dev babel-core

安装转移的插件,这个是为了把两个文件都转移到一个文件里面去

 cnpm install babel-preset-env  babel-preset-react --save-dev
运行webpack转移文件

创建一个html文件,引入转移后生成的文件



    
        
        React3
    
    
        

创建app.js文件,作为导入文件

import bar from "./bar";

bar();

创建bar.js文件,作为导出文件

export default function bar() {
  console.log(1);
}

创建webpack.config.js文件,这个文件作为配置文件

module.exports = {
  entry: "./app.js",
  output: {
    filename: "bundle.js"
  }
}

做完这个以后,我们就可以运行webpack了,

在命令行输入webpack就可以运行

此时index.html页面的控制台就会输出1;

注释:现在我们的webpack环境就搭建的差不多了,下面我们来进一步的了解webpack;

进一步了解webpack

首先把bar.js改成HelloWorld.js;

安装两个react库,react和react-dom

这两个库可以一起安装
cnpm install react react-dom --save-dev
编写模块

HelloWorld.js

import React from "react";

class HelloWorld extends React.Component{
    render(){
        return (
            
Hello World!!!!
) } } //export {HelloWorld as default}; export default HelloWorld;

app.js

import React from "react";
import ReactDOM from "react-dom";
import HelloWorld from "./components/HelloWorld";

ReactDOM.render(,document.getElementById("app"));

运行webpack --watch

在命令行里输入:
webpack --watch

此时页面会显示:

注释:这里我们是用编辑器打开的,下面会通过服务器来打开index.html页面;

用服务器打开页面

安装webpack-dev-server来起一个服务器

全局安装:
npm install  webpack-dev-server -gd
局部安装:
npm install  webpack-dev-server --save-dev

输入命令行,通过服务器打开页面

webpack-dev-server --content-base build/

现在的这个网页是打不开的,因为找不着index.html文件,所以我们需要重新整理一下文件,整理后的文件:

整理完文件后,需要修改一下webpack.config.js文件

module.exports = {
  entry: "./app.js",
  output: {
    filename: "build/bundle.js"  //修改
  }
},
 module: {
      rules: [
        { test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader" },
      ]
    }

修改完以后我们需要运行一下webpack --watch

在命令行输入:
webpack --watch

然后运行server

webpack-dev-server --content-base build/

此时的页面和刚才的页面不同,此时的页面是用服务器打开的:

webpack自动刷新

修改webpack.config.js文件

var path = require("path");  //添加
module.exports = {
  devtool:"source-map",
  entry: "./app.js",
  output: {
      path:path.resolve(__dirname,"build"),  //添加
      publicPath:"/assets/",  //添加
        filename: "bundle.js"   
  },
  module: {
      rules: [
        { test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader" },
      ]
    }
}

修改index.html文件



    
        
        React3
    
    
        
//修改

输入自动刷新命令

 webpack-dev-server --content-base build/  --inline

此时我们的页面就可以自动刷新了:

webpack热更新

安装react-hot-loader

cnpm install react-hot-loader  --save-dev

修改webpack.config.js

var path = require("path");
module.exports = {
  devtool:"source-map",
  entry: "./app.js",
  output: {
      path:path.resolve(__dirname,"build"),
      publicPath:"/assets/",
    filename: "bundle.js"
  },
  module: {
      rules: [
        { test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader" },//修改
      ]
    }
}

运行热更新

webpack-dev-server --content-base build/  --hot

热更新和自动刷新的区别就是自动刷新是全部刷新,就相当于整个页面都刷新一次,而热更新是只刷新你指定的那个模块;

webpack处理样式

安装style-loader和css-loader

cnpm install style-loader css-loader  --save-dev

整理文件

创建一个css文件夹,在文件夹里面创建一个main.css文件;

- main.css:

body{
    background:red;
}

修改webpack.config.js文件

var path = require("path");
module.exports = {
  devtool:"source-map",
  entry: "./app.js",
  output: {
      path:path.resolve(__dirname,"build"),
      publicPath:"/assets/",
    filename: "bundle.js"
  },
  module: {
      rules: [
        { test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader" },
        { test: /.css$/, exclude: /node_modules/, loader: "style-loader!css-loader" }  //修改
      ]
    }
}

修改app.js文件

import React from "react";
import ReactDOM from "react-dom";
import HelloWorld from "./components/HelloWorld";

import "./css/main.css";   //修改
ReactDOM.render(,document.getElementById("app"));

修改index.html文件



    
        
        React3
    
    
        
//修改

在命令行里运行

webpack-dev-server --content-base build/  --hot

此时的页面和刚才的一样,只不过是整理了一下;

webpack优化项目结构

创建一个名为components的文件,把HelloWorld.js放进去,这个文件夹就作为模块文件;

修改app.js

import React from "react";
import ReactDOM from "react-dom";
import HelloWorld from "./components/HelloWorld";  //修改

import "./css/main.css";
ReactDOM.render(,document.getElementById("app"));

修改package.json

{
  "name": "React3",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1",
    "start":" webpack-dev-server --content-base build/ --hot"  //修改
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.25.0",
    "babel-loader": "^7.1.1",
    "babel-preset-env": "^1.6.0",
    "babel-preset-react": "^6.24.1",
    "css-loader": "^0.28.4",
    "style-loader": "^0.18.2",
    "webpack": "^3.4.0",
    "webpack-dev-server": "^2.6.1"
  },
  "dependencies": {
    "react": "^15.6.1",
    "react-dom": "^15.6.1"
  }
}

此时我们就不用每一次都输入那么长的命令了,直接在命令行里输入 npm start就可以跑起来了;

看完了是不是感觉也没那么难呢!那就快来加入我的团队吧,微信二维码:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/112308.html

相关文章

  • React结合webpack具体使用

    摘要:结合的具体使用我们一般是使用进行安装的,这里我为大家推荐一款淘宝出的,这个和差不多,但是比安装的要快很多安装命令搭建环境初始化一个文件安装全局安装局部安装安装来把格式的代码编译成安装来转译代码安装转移的插件, React结合webpack的具体使用 我们一般是使用npm进行安装的,这里我为大家推荐一款淘宝出的cnpm,这个和npm差不多,但是比npm安装的要快很多; 安装命令 npm ...

    enrecul101 评论0 收藏0
  • React结合webpack具体使用

    摘要:结合的具体使用我们一般是使用进行安装的,这里我为大家推荐一款淘宝出的,这个和差不多,但是比安装的要快很多安装命令搭建环境初始化一个文件安装全局安装局部安装安装来把格式的代码编译成安装来转译代码安装转移的插件, React结合webpack的具体使用 我们一般是使用npm进行安装的,这里我为大家推荐一款淘宝出的cnpm,这个和npm差不多,但是比npm安装的要快很多; 安装命令 npm ...

    Leck1e 评论0 收藏0
  • webpack4 中最新 React全家桶实战使用配置指南!

    摘要:安装配置加载器配置配置文件配置支持自定义的预设或插件只有配置了这两个才能让生效,单独的安装是无意义的。 showImg(https://segmentfault.com/img/bVbjGNY?w=2847&h=1931); 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 最新React全家桶实战使用配置指南 这篇文档 是吕小明老师结合以往的项目经验 加上自己本身...

    Towers 评论0 收藏0
  • webpack使用-详解DllPlugin

    摘要:前言时光飞逝,转眼又偷懒了一个多月什么是文件为动态链接库文件在中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即文件,放置于系统中。 前言 (时光飞逝,转眼又偷懒了一个多月) 什么是DLL DLL(Dynamic Link Library)文件为动态链接库文件,在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链...

    KunMinX 评论0 收藏0
  • dva 结合webpack4 改写动态加载

    摘要:具体就不贴上来了,这里主要是利用采用的动态加载原理进行改造。首先,依赖与,所以最初的想法是采用结合的方式进行改写。这个过程实际是是的动态加载。 dva现在是构建在umi基础上,由于项目的原因,我并没有采用umi架构,而是自己使用webpack4来进行打包,只用dva负责数据流的处理,dva原来的dynamic在webpack4上编译会有一堆错误。具体就不贴上来了,这里主要是利用webp...

    pekonchan 评论0 收藏0

发表评论

0条评论

LeexMuller

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<