博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过一个小实例串联webpack+react的使用(入门篇)
阅读量:7233 次
发布时间:2019-06-29

本文共 3089 字,大约阅读时间需要 10 分钟。

底层建筑决定上层建筑,这是学习webpack的一些初步总结,配合react写了这么一个demo

目录构建如下

目录简要解析

  • src 目录是程序所有的源代码
    common 程序的公共资源
    component 页面中的组件,每个组件用一个文件夹包起来以便管理维护
  • dist 是通过webpack打包后的输出目录
    assets 打包后存放公共资源的地方
    index.html 用来引用资源的入口
  • app.js 打包的入口文件
  • data.js 一堆模拟数据
  • .babelrc babel的配置文件
  • postcss.config.js postcss的配置文件
  • webpack.config.js webpack的配置文件

开发依赖和生产依赖

文件名 package.json

  • 开发依赖
"devDependencies": {    "autoprefixer": "^8.1.0",    "babel-core": "^6.26.0",    "babel-loader": "^7.1.3",    "babel-preset-env": "^1.6.1",    "babel-preset-react": "^6.24.1",    "clean-webpack-plugin": "^0.1.19",    "css-loader": "^0.28.10",    "file-loader": "^1.1.9",    "html-webpack-plugin": "^2.30.1",    "postcss-loader": "^2.1.2",    "style-loader": "^0.20.2",    "url-loader": "^0.6.2",    "webpack": "^3.11.0",    "webpack-dev-server": "^2.11.1"},复制代码
  • 生产依赖
"dependencies": {    "prop-types": "^15.6.1",    "react": "^16.2.0",    "react-dom": "^16.2.0"}复制代码
  • 配置运行脚本
"scripts": {    "dev": "webpack",    "start": "webpack-dev-server"}复制代码

配置babel(解决js的兼容问题)

文件名 .babelrc

{    "presets": ["env","react"]}复制代码

配置postcss(解决css的兼容问题)

文件名 postcss-loader

const Autoprefixer = require('autoprefixer')module.exports = {    plugins: [        Autoprefixer()    ]}复制代码

接下来就是配置webpack

之所以把webpack留到最后是为了方便阅读

文件名 webpack.config.js

const path = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin');const CleanWebpackPlugin = require('clean-webpack-plugin');module.exports = {    entry: "./src/app.js",    output: {        path: path.resolve(__dirname,'dist'),        filename: "assets/js/main.js"    },    resolve: {        // 设置模块默认路径        modules: [            "node_modules",            path.resolve(__dirname,'src/common'),            path.resolve(__dirname,'src/component')        ]    },    // 配置本地开发服务器    devServer: {        open: true,        port: 5552    },    plugins: [        // 改变输出路径和文件名        new HtmlWebpackPlugin({            filename: "index.html",            template: "./src/index.html"        }),        // 如果是本地打包的话,每次都清空上一次编译好的文件        new CleanWebpackPlugin()    ],    module: {        rules:[{                // 解析jsx和转换高版本的js                test: /\.(js|jsx)$/,                use: ["babel-loader"],                include: [                    path.resolve(__dirname,'src')                ]            },{                // 引入样式                test: /\.css$/,                use: ["style-loader","css-loader","postcss-loader"],                include: [                    path.resolve(__dirname,'src')                ]            },{                // 引入图片                test: /\.(jpg|png|gif)$/,                use: [                    {                        loader: "url-loader",                        options: {                            limit: 3000,                            name: "assets/img/[name].[ext]"                        }                    }                ]            }        ]    }}复制代码

通过以上的配置,就可以正常在项目中引用图片、字体图标、样式

同时也可以使用es6的语法写react项目

密码:y3n9

demo运行方法:
在命令行进入该demo文件夹,使用命令npm install自动安装所有依赖
然后通过命令npm start启动webpack的本地服务器
等webpack打包完成后会自动打开浏览器显示项目效果。

需要注意的是:需要在ios系统上运行打包

转载地址:http://zxlfm.baihongyu.com/

你可能感兴趣的文章
揭示同步块索引(上):从lock开始
查看>>
js中#代表什么
查看>>
MySQL中的RAND()函数使用详解(order by rand() 随机查询取前几条记录)
查看>>
PHP7运行环境搭建(Windows7)
查看>>
Ubuntu扩展系统盘容量,虚拟机下
查看>>
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系...
查看>>
Java并发编程的艺术(二)——重排序
查看>>
php Restful设计
查看>>
A very simple C++ module to encrypt/decrypt strings based on B64 and Vigenere ciper.
查看>>
git 合并子分支
查看>>
git基本操作:上传代码
查看>>
vs2017创建支持多框架(net4.6.1;net4.6.2;netstandard2.0;netcoreapp2.0)版本
查看>>
nginx 服务器常见配置以及负载均衡
查看>>
ES6 class setTimeout promise async/await 测试Demo
查看>>
Glace:generator-jhipster, adding User entity enhancement management
查看>>
SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑
查看>>
9 CSS in JS Libraries You Should Know in 2018
查看>>
webstorm 设置js或者html文件自动缩进为4个空格不生效
查看>>
IntelliJ IDEA创建maven多模块项目
查看>>
108. 将有序数组转换为二叉搜索树
查看>>