zoukankan      html  css  js  c++  java
  • webpack learn2-vue的jsx写法和postcss 1

    首先输入命令安装

    npm i postcss-loader autoprefixer babel-loader  babel-core

    在根目录创建文件 .babelrc和postcss.config.js

    其中postcss.config.js内容:

    const autoprefixer = require('autoprefixer')
    
    module.exports = {
        plugins: [
            autoprefixer()
        ]
    }

    .babelrc内容:

    {
        "presets": [
            "env"
        ],
        "plugins": [
            "transform-vue-jsx"
        ]
    }

    再次配置webpack.config.js文件,内容:

    const path = require('path')
    
    const VueLoaderPlugin = require('vue-loader/lib/plugin')
    
    const HTMLPlugin = require('html-webpack-plugin')
    const webpack = require('webpack')
    const isDev = process.env.NODE_ENV === 'development'
    
    const config = {
      target: 'web',
      entry: path.join(__dirname,'src/index.js'),
      output: {
        filename: 'bundle.js',
        path: path.join(__dirname,'dist')
      },
      module: {
        rules: [
          {
            test: /.vue$/,
            loader: 'vue-loader'
          },{
            test: /.jsx$/,
            loader: 'babel-loader'
          },{
            test:/.css$/,
            use: [
              'style-loader',
              'css-loader'
            ]
          },{
            test: /.styl/,
            use: [
              'style-loader',
              'css-loader',
              {
                loader: 'postcss-loader',
                options: {
                  sourceMap: true
                }
              },
              'stylus-loader'
            ]
          },{
            test:/.(jpg|svg|jpeg|png|gif)$/,
            use: [
              {
                loader: 'url-loader',
                options: {
                  limit: 1024,
                  name: '[name]-aa.[ext]'
                }
              }
            ]
          }
        ]
      },
      plugins:[
          new VueLoaderPlugin(),
          new webpack.DefinePlugin({
            'process.env': {
              NODE_ENV: isDev ? '"development"' : '"production"'
            }
          }),
          new HTMLPlugin()
      ]
    }
    
    if(isDev) {
      // 帮助调试代码
      config.devtool = '#cheap-module-eval-source-map'
      config.devServer = {
        port: 8000,
        host: '0.0.0.0',
        overlay: {
          errors: true
        },
        // 热加载功能:只渲染修改的组件,不会刷新页面
        hot: true
        //open: true 改配置后就自动打开浏览器
      }
      config.plugins.push(
        new webpack.HotModuleReplacementPlugin(),
        new webpack.NoEmitOnErrorsPlugin()
      )
    }
    
    module.exports = config
    View Code

    最后npm run dev

  • 相关阅读:
    容器环境的JVM内存设置最佳实践
    K8S基于ingress-nginx实现灰度发布
    基于ambassador实现K8S灰度发布
    Nginx配置中一个不起眼字符"/"的巨大作用,失之毫厘谬以千里
    springboot之jackson的两种配置方式
    CentOS7清理磁盘空间
    主机磁盘满了,却查不到大文件占用
    【数据库-MySql】开启事件 event_scheduler
    Jenkins自动化构建vue项目然后发布到远程服务器
    CentOS 7 使用NVM管理nodejs
  • 原文地址:https://www.cnblogs.com/init-007/p/10915241.html
Copyright © 2011-2022 走看看