• webpack3.0 环境搭建


    额、备份一下总是好的

    #为了避免某些国外镜像源安装失败,先设置淘宝镜像代理
    yarn config set registry https://registry.npm.taobao.org
    
    # 初始化yarn
    yarn init -y
    
    # 添加webpack
    yarn add webpack
    
    # 添加webpack插件
    yarn add html-webpack-plugin
    yarn add webpack-dev-server
    yarn add extract-text-webpack-plugin
    
    # 添加webpack-loader
    yarn add style-loader css-loader node-sass sass-loader 
    yarn add url-loader
    yarn add file-loader
    yarn add postcss-loader autoprefixer
    
    # 添加babel插件
    yarn add babel-preset-react
    yarn add babel-loader babel-core
    
    # react相关
    yarn add react react-dom
    yarn add react-router react-router-dom
    yarn add redux redux-thunk redux-saga react-redux
    yarn add react-router-redux@next history
    
    # 蚂蚁金服的UI框架:Ant Design
    yarn add antd
    
    # 添加第三方库
    yarn add axios

     配置webpack.config.js

    const path = require('path')
    const HtmlWebpackPlugin = require('html-webpack-plugin')
    const ExtractTextPlugin = require('extract-text-webpack-plugin')
    const autoprefixer = require('autoprefixer')
    
    module.exports = {
        entry: {
            main: __dirname + '/src/main.js'
        },
        output: {
            path: path.resolve(__dirname, 'dist'),
            filename: 'assets/js/[name].js'
        },
        devtool: 'source-map',
        module: {
          rules: [
              { test: /.js$/, exclude: /node_modules/, loader: 'babel-loader' },
              {
                  test: /.woff(?v=d+.d+.d+)?$/,
                  loader: 'url-loader',
                  options: {
                      limit: 10000,
                      minetype: 'application/font-woff',
                  },
              },
              {
                  test: /.woff2(?v=d+.d+.d+)?$/,
                  loader: 'url-loader',
                  options: {
                      limit: 10000,
                      minetype: 'application/font-woff',
                  },
              },
              {
                  test: /.ttf(?v=d+.d+.d+)?$/,
                  loader: 'url-loader',
                  options: {
                      limit: 10000,
                      minetype: 'application/octet-stream',
                  },
              },
              { test: /.eot(?v=d+.d+.d+)?$/,
                  loader: 'url-loader',
                  options: {
                      limit: 10000,
                      minetype: 'application/vnd.ms-fontobject',
                  },
              },
              {
                  test: /.svg(?v=d+.d+.d+)?$/,
                  loader: 'url-loader',
                  options: {
                      limit: 10000,
                      minetype: 'image/svg+xml',
                  },
              },
              {
                  test: /.(png|jpg|jpeg|gif)(?v=d+.d+.d+)?$/i,
                  loader: 'url-loader',
                  options: {
                      limit: 10000,
                  },
              },
              {
                  test: /.(scss|sass|css)$/,
                  use: ExtractTextPlugin.extract({
                      fallback: 'style-loader',
                      use: [
                        { loader: 'css-loader' },
                        {
                          loader: 'postcss-loader',
                          options: {
                            sourceMap: true,
                            plugins: () => [autoprefixer({ browsers: ['iOS >= 7', 'Android >= 4.1'] })],
                          },
                        },
                        {
                           loader: 'sass-loader',
                           query: {
                             sourceMap: true
                           }
                        }
                      ]
                  })
              }
          ]
        },
        plugins: [
            new HtmlWebpackPlugin({
                title: 'my title',
                filename: __dirname + '/dist/index.html',
                template: __dirname + '/index.html',
                chunks: ['main']
            }),
            new ExtractTextPlugin('assets/css/[name].css')
        ],
        devServer: {
            contentBase: path.join(__dirname, 'dist'),
            compress: true,
            port: 9000
        }
    }

    配置.babelrc

    {
      "presets": ["react"],
      "plugins": [
            ["import", { "libraryName": "antd", "style": "css" }]
      ]
    }

    配置package.json,加入scripts

    {
      ...
      "scripts": {
        "build": "webpack",
        "dev": "webpack-dev-server"
      }
    }
  • 相关阅读:
    JS中常见的几种控制台台报错
    nssm常用命令(在Windows系统下安装服务的工具)
    Web前端浏览器默认样式重置(CSS Tools: Reset CSS)
    Layui的本地存储方法-Layui.data的基本使用
    JS事件冒泡与事件捕获怎么理解?
    解决Web开发HTML页面中footer保持在页面底部问题
    cpdetector获取文件编码
    maven
    jdom工具类
    httpclient4封装类
  • 原文地址:https://www.cnblogs.com/CyLee/p/7711145.html
Copyright © 2020-2023  润新知