美文网首页Web 前端开发 程序员webpack学习
五分钟-配置Webpack-React 2017.12(一)

五分钟-配置Webpack-React 2017.12(一)

作者: 这个超人不会飞阿 | 来源:发表于2017-12-19 16:23 被阅读36次

因为是基于node环境, 必须确定node安装
验证安装ok?(说明符号 $: 在终端运行)
$ : node -v
$ : npm -v


webpack基础入门

webpack前身:browserify
缺点: 只能转化js

webpack作用?(废话不多说,现在webpack挺好用的就行)
一切都是模块化(js,css,图片等)
一个模块加速器,打包工具


安装webpack:

流程:

  1. 安装webpack命令环境
    cnpm install webpack -g //这一步安装完成就可以使用webpack了 -g是全局 就是每个目录都能运行webpack

     验证是否安装成功,我们只需在任意地方右键->git bash(前提是安装了git)
     
     webpack --version //$ webpack --version 3.10.0  这是我安装的3.10.0版本
    
  2. package.json 工程文件(需要依赖模块,库描述,版本,作者..)
    2.1 手动建立
    2.2 命令建立--新建webpack-demo目录,在该目录打开git bash命令.
    $ : cnpm init
    然后各种要求你输入的 然后一直Enter键让它默认.
    最后在你的webpack-demo目录会生成一个文件package.json
    项目出我的文件结构

**提示** 记得将我的注释去掉哦.
react-webpack2/
  |
  ---  README.md //手动新建 
  --- package.json   //经过上一步  cnpm init 已经存在.
  --- webpack.config.js  //手动新建
  --- public/ //手动新建
       |
       --- index.html(模板文件) //手动新建
       --- favicon.ico(网站图标) //手动新建 
   --- src/(项目文件都在这里)//手动新建
      |
       --- index.js(入口文件) //手动新建
       --- pages/ (页面) //手动新建
       --- components/(抽离的公用组件) //手动新建
       --- css/ //手动新建
       --- js/ //手动新建
       --- images/ //手动新建

安装webpack: cnpm install webpack --save-dev

webpack.config.js

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    entry: './src/index.js', //相对路径
    output: {
        path: path.resolve(__dirname, 'build'), //打包文件的输出路径
        filename: 'bundle.js' //打包文件名
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './public/index.html', //指定模板路径
            filename: 'index.html', //指定文件名
        })
    ],
     devServer: {
        contentBase: path.resolve(__dirname, 'build'),
        inline: true
    },
    module: {
        loaders: [ //配置加载器
                {
                test: /\.css$/,
                use: [
                    {
                        loader: 'style-loader',
                    },
                    {
                        loader: 'css-loader',
                        options: {
                            importLoaders: 1,
                        }
                    },
                    {
                        loader: 'postcss-loader',
                        options: {
                            plugins: () => [
                                require('autoprefixer'),
                                require('precss'),
                                require('postcss-flexbugs-fixes')
                            ]
                        }
                        
                    }
                ]
            },
            {
                test: /\.js$/, //配置要处理的文件格式,一般使用正则表达式匹配
                loader: 'babel-loader', //使用的加载器名称
                query: { //babel的配置参数,可以写在.babelrc文件里也可以写在这里
                    presets: ['env', 'react']
                }
            },
            {
            test: [/\.gif$/, /\.jpe?g$/, /\.png$/],
            loader: 'url-loader',
            options: {
              limit: 10000 //1w字节以下大小的图片会自动转成base64
            }
            }
            
        ]
    }

}


src/index.js

function hello() {
    console.log('hello world');
}

好了这就够了,我们已经可以运行这个项目了,打开命令窗口试一下:webpack

编译成功了,项目根目录下已经生成好build/bundle.js文件了,bundle.js文件前面的几十行代码其实就是webpack对怎么加载文件,怎么处理文件依赖做的一个声明。

我们可以将启动wepback的命令写到package.json中并添加一些有用的参数:

package.json

{
  "name": "react-webpack2",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "start": "webpack --progress --watch --hot"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel": "^6.23.0",
    "babel-cli": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1",
    "css-loader": "^0.28.7",
    "html-webpack-plugin": "^2.30.1",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "style-loader": "^0.19.1",
    "webpack": "^3.10.0",
    "webpack-dev-server": "^2.9.7"
  },
  "dependencies": {
    "autoprefixer": "^7.2.3",
    "css-loader": "^0.28.7",
    "eslint": "^4.13.1",
    "eslint-loader": "^1.9.0",
    "eslint-plugin-react": "^7.5.1",
    "file-loader": "^1.1.6",
    "postcss-flexbugs-fixes": "^3.2.0",
    "postcss-loader": "^2.0.9",
    "precss": "^2.0.0",
    "style-loader": "^0.19.1",
    "url-loader": "^0.6.2"
  }
}

....
请到该地址下载文件并放到你项目相应的位置
链接: https://pan.baidu.com/s/1slxB3Yl 密码: 4dhd


在react-webpack2/目录下

  • $ : cnpm install //会自动安装package.json所依赖的文件.

继续:

  • $: webpack // 执行完成后 webpack-react2目录的bulid文件下执行 index.htnl 文件 就跑起来的.

  • 但是你发现 修改了文件 然后去刷新 不会有变化 因为没有执行webpack --progress --watch --hot
  • 所以你执行 $ : webpack --progress --watch --hot
  • 或者 $ : cnpm start //前提是你已经在package.json配置过script 上面已经配置了
  • progress是显示打包进程,watch是监听文件变化,hot是启动热加载

于是你再修改 去浏览器刷新 就ok了~

image.png

下一讲介绍-自动更新页面.

相关文章

  • 五分钟-配置Webpack-React 2017.12(一)

    因为是基于node环境, 必须确定node安装验证安装ok?(说明符号 $: 在终端运行)$ : node -v$...

  • 2017.12

    只要懂得操纵情报,真相是什么谁也不知道。 ——伊坂幸太郎《摩登时代》 所以我就想,真正的老人福利并不是安个扶手之类...

  • 2017.12

  • 翻译练习

    2017.12The Dongting Lake is located in the northeast of H...

  • Jira入门教程 敏捷开发管理(一)

    Jira入门教程 敏捷开发管理(一) Gilberto 3.4 2017.12...

  • 2017.12.。。。

    进入十二月了,该考研的考研,该期末的期末,也快体育考试了。。。。长拳,哈哈哈真心不太会打啊。。。为什么人家的体育课...

  • 2017.12总结

    这个月是和前期生活有变化的,我工作了,而且我发现我在工作上能够很快上手的,写起诉书,出任务,拍照,写简报,处理在线...

  • 2017.12*30

    感恩2017 你好2018 日子很快 转眼一年 酸甜苦辣 一杯酒 风霜雨雪 当如歌

  • 2017.12初雪

    2017.12.14初雪

  • 2017.12花圈

    绛县与北京 张君,李卫东,崔帅,贺阳,辛强,林颖,王谊栋,杜康,杨超,杨涛,杨超,裴育,李晶,马文言,安迪,刘伟东...

网友评论

    本文标题:五分钟-配置Webpack-React 2017.12(一)

    本文链接:https://www.haomeiwen.com/subject/gxxiwxtx.html