webpack 构建 vue 开发环境

2021-05-29 02:02

阅读:546

YPE html>

标签:开发环境   ext   scope   文件夹   ted   class   github   art   styles   

1. 必要环境 请确保已安装 

node npm webpack

2.创建一个test文件夹 

mkdir test && cd test && npm init 

 

3. 创建 webpack.dev.config.js

const path = require(‘path‘)
const {CleanWebpackPlugin} = require(‘clean-webpack-plugin‘) // webpack插件 清除打包文件夹下多余文件 详细配置==>(https://www.npmjs.com/package/clean-webpack-plugin)
const HtmlWebpackPlugin = require(‘html-webpack-plugin‘) // webpack插件    简化html创建 详细配置==>(https://github.com/jantimon/html-webpack-plugin)
const VueLoaderPlugin = require(‘vue-loader/lib/plugin‘) // vue-loader 插件,它的职责是将你定义过的其它规则复制并应用到 .vue 文件里相应语言的块
const webpack = require(‘webpack‘)
module.exports = {
    entry: {
        app: ‘./main.js‘
    },
    devtool: ‘cheap-module-eval-source-map‘, // 控制如何生成 source map ==>(https://www.webpackjs.com/configuration/devtool/)
    devServer: {
        contentBase: ‘./dist‘,
        hot: true
    },
    mode: ‘development‘,
    module: { 
        rules: [
            {
                test: /\.(svg)(\?.*)?$/,
                use: [‘file-loader‘]
            }, {
            test: /\.css$/,
            use: [‘style-loader‘, ‘css-loader‘],
        }, {
            test: /\.vue$/,
            use: [‘vue-loader‘]
        }, {
            test: /\.(png|jpg|jpeg|gif)$/,
            use: [{
                loader: ‘url-loader‘,
                options: {
                    limit: 10000,
                    name: ‘[name].[ext]‘,
                    outputPath: ‘assets/img‘,
                    publicPath: ‘‘
                }
            }]
        }, {
            test: /\.js$/,
            use: [{
                loader: ‘babel-loader‘,
                options: {
                    presets: [‘react‘, ‘env‘]
                }
            }],
            include: [
                path.resolve(__dirname, ‘src‘)
            ]
        }, {
            test: /\.(woff|woff2|eot|ttf|otf)$/,
            use: [‘url-loader‘]
        }]
    },
    plugins: [ // 插件配置
        new CleanWebpackPlugin(),
        new HtmlWebpackPlugin({
            template: ‘./src/index.html‘,
            filename: ‘index.html‘
        }),
        new VueLoaderPlugin(),
        new webpack.NamedModulesPlugin(),
        new webpack.HotModuleReplacementPlugin()
    ],
    output: {
        filename: ‘[name].js‘,
        path: path.resolve(__dirname, ‘dist‘)
    },
    resolve: {
        alias: {
            ‘vue$‘: ‘vue/dist/vue.esm.js‘,
            ‘@‘: ‘src‘
        }
    }
}

 4.  package.json 

const path = require(‘path‘)
const {CleanWebpackPlugin} = require(‘clean-webpack-plugin‘) // webpack插件 清除打包文件夹下多余文件 详细配置==>(https://www.npmjs.com/package/clean-webpack-plugin)
const HtmlWebpackPlugin = require(‘html-webpack-plugin‘) // webpack插件    简化html创建 详细配置==>(https://github.com/jantimon/html-webpack-plugin)
const VueLoaderPlugin = require(‘vue-loader/lib/plugin‘) // vue-loader 插件,它的职责是将你定义过的其它规则复制并应用到 .vue 文件里相应语言的块
const webpack = require(‘webpack‘)
module.exports = {
    entry: {
        app: ‘./main.js‘
    },
    devtool: ‘cheap-module-eval-source-map‘, // 控制如何生成 source map ==>(https://www.webpackjs.com/configuration/devtool/)
    devServer: {
        contentBase: ‘./dist‘,
        hot: true
    },
    mode: ‘development‘,
    module: {
        rules: [
            {
                test: /\.(svg)(\?.*)?$/,
                use: [‘file-loader‘]
            }, {
                test: /\.css$/,
                use: [‘style-loader‘, ‘css-loader‘],
            }, {
                test: /\.vue$/,
                use: [‘vue-loader‘]
            }, {
                test: /\.(png|jpg|jpeg|gif)$/,
                use: [{
                    loader: ‘url-loader‘,
                    options: {
                        limit: 10000,
                        name: ‘[name].[ext]‘,
                        outputPath: ‘assets/img‘,
                        publicPath: ‘‘
                    }
                }]
            }, {
                test: /\.js$/,
                use: [{
                    loader: ‘babel-loader‘,
                    options: {
                        presets: [‘react‘, ‘env‘]
                    }
                }],
                include: [
                    path.resolve(__dirname, ‘src‘)
                ]
            }, {
                test: /\.(woff|woff2|eot|ttf|otf)$/,
                use: [‘url-loader‘]
            }]
    },
    plugins: [ // 插件配置
        new CleanWebpackPlugin(),
        new HtmlWebpackPlugin({
            template: ‘./src/index.html‘,
            filename: ‘index.html‘
        }),
        new VueLoaderPlugin(),
        new webpack.NamedModulesPlugin(),
        new webpack.HotModuleReplacementPlugin()
    ],
    output: {
        filename: ‘[name].js‘,
        path: path.resolve(__dirname, ‘dist‘)
    },
    resolve: {
        alias: {
            ‘vue$‘: ‘vue/dist/vue.esm.js‘,
            ‘@‘: ‘src‘
        }
    }
}

 4 创建main.js

import Vue from ‘vue‘
import App from ‘./App.vue‘
import ViewUI from ‘view-design‘;
import ‘view-design/dist/styles/iview.css‘;
Vue.use(ViewUI);
new Vue({
    el: ‘#app‘,
    components: {App},
    template: ‘‘
})

 5. 创建App.vue

 6. 创建 index.html

VueJS

 7. 执行 命令: npm run start

 

webpack 构建 vue 开发环境

标签:开发环境   ext   scope   文件夹   ted   class   github   art   styles   

原文地址:https://www.cnblogs.com/412013cl/p/14752466.html


评论


亲,登录后才可以留言!