美文网首页
webpack自动打包并集成Bable解决浏览器兼容

webpack自动打包并集成Bable解决浏览器兼容

作者: d4c9d1b99362 | 来源:发表于2021-05-29 14:53 被阅读0次

已集成好vue打包
npm i -D webpack@v4.35.2 webpack-cli@3.3.6 style-loader css-loader file-loader html-webpack-plugin webpack-dev-server babel-loader @babel/core @babel/preset-env vue vue-loader vue-template-compiler

package.json如下:

{

  "name": "webpack-demo6",

  "version": "1.0.0",

  "description": "",

  "main": "index.js",

  "scripts": {

    "show": "webpack -v",

    "build": "webpack",

    "start": "node ./src/main.js",

    "watch": "webpack --watch",

    "dev": "webpack-dev-server --open"

  },

  "keywords": [],

  "author": "",

  "license": "ISC",

  "devDependencies": {

    "@babel/core": "^7.5.4",

    "@babel/preset-env": "^7.5.4",

    "babel-loader": "^8.0.6",

    "css-loader": "^3.0.0",

    "file-loader": "^4.0.0",

    "html-webpack-plugin": "^3.2.0",

    "style-loader": "^0.23.1",

    "vue-loader": "^15.7.0",

    "vue-template-compiler": "^2.6.10",

    "webpack": "^4.35.3",

    "webpack-cli": "^3.3.6",

    "webpack-dev-server": "^3.7.2"

  },

  "dependencies": {

    "vue": "^2.6.10"

  }

}

webpack.config.js配置如下:

// 引入node中的path模块,处理文件路径 的小工具

const path = require('path')

// 引入插件

const HtmlWebpackPlugin = require('html-webpack-plugin')

// 1. 引入 vue-loader插件

const VueLoaderPlugin = require('vue-loader/lib/plugin')

// 1. 导入webapck, 热模块加载

const webpack = require('webpack')

// 导出一个webpack具有特殊属性配置的对象

module.exports = {

    mode: 'none', // 指定模式配置:"development" | "production" | "none"

    // 入口

    entry: './src/main.js', // 入口模块文件路径

    // 出口

    output: {

        // path: './dist/', 错误的,要指定绝对路径

        path: path.join(__dirname, './dist/'), //打包的结果文件生成的目录要是绝对路径

        filename: 'bundle.js'

    },

    // 配置插件

    plugins: [ 

        new HtmlWebpackPlugin({

            // 指定要打包的模板页面

            // 就会将 index.html 打包到与 bundle.js 所在同一目录下面,

            // 同时在 index.html 中会自动的使用script 标签引入bundle.js

            template: './index.html'

        }),

        // 3. 请确保引入这个插件!

        new VueLoaderPlugin(),

        // 3. 配置热模块加载对象

        new webpack.HotModuleReplacementPlugin()

    ],

    // 实时重新加载

    devServer: {

        // 目标路径

        contentBase: './dist',

        // 2. 开启热模块加载,

        hot: true

    },

    module: {

        rules: [ //配置转换规则

            {

                test: /\.css$/, // 注意,不要有单引号,正则表达 式,匹配 .css 文件资源

                use: [

                    // 根据外国人的习惯来的顺序,而且顺序不要写错

                    'style-loader', // js识别css

                    'css-loader' // css 转换为 js

                ]

            },

            {

                test: /\.(png|svg|jpg|gif)$/,

                use: [

                    'file-loader'

                ]

            },

            // 解决兼容性问题

            {

                test: /\.m?js$/,

                exclude: /(node_modules)/, // 排除的目录

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['@babel/preset-env'] // babel中内容的转换规则工具

                    }

                }

            },

            // 2. 处理 .vue 单文件组件

            {

                test: /\.vue$/,

                loader: 'vue-loader'

            }

        ]

    },

    // 解析完整版 vue.js

    // resolve: {

    //    alias: {

    //        'vue$': 'vue/dist/vue.js'

    //    }

    // }

}

最后:npm run dev   测试浏览器自动打开

相关文章

网友评论

      本文标题:webpack自动打包并集成Bable解决浏览器兼容

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