Vue: webpack js basic structure

vue webpack所用基础包:

nom install vue vue-loader webpack webpack-cli webpack-dev-server vue-template-compiler

package.json:

{
  "name": "vue2.x_demo",
  "version": "1.0.0",
  "description": "vue webpack",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config webpack.config.js --mode development",
    "start": "webpack-dev-server --config webpack.config --mode development"
  },
  "keywords": [
    "vue"
  ],
  "author": "Nyan Shen",
  "license": "ISC",
  "dependencies": {
    "vue": "^2.6.10"
  },
  "devDependencies": {
    "css-loader": "^2.1.1",
    "html-webpack-plugin": "^3.2.0",
    "vue-loader": "^15.7.0",
    "vue-template-compiler": "^2.6.10",
    "webpack": "^4.29.5",
    "webpack-cli": "^3.2.3",
    "webpack-dev-server": "^3.1.14",
    "webpack-merge": "^4.2.1"
  }
}

webpack.config.js basic config

const path = require('path');
const webpack = require('webpack');
const {VueLoaderPlugin} = require('vue-loader');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: path.join(__dirname, 'src/index.js'),
    output: {
        filename: 'bundle.js',
        path: path.join(__dirname, 'dist')
    },
    module: {
        rules: [
            {
                test: /\.vue$/,
                use: 'vue-loader'
            },
            {
                test: /\.css$/,
                use: 'css-loader'
            }
        ]
    },
    plugins: [
        new webpack.DefinePlugin({
            'process.env.NODE_ENV': JSON.stringify('development')
        }),
        new HtmlWebpackPlugin({
            template: path.join(__dirname, "src/index.html"),
            filename: 'index.html'
        }),
        new VueLoaderPlugin()
    ],
    devServer: {
        port: 8088,
        historyApiFallback: true,
        proxy: {
            '/api/*': {
                target: 'localhost:12306',
                changeOrigin: true
            }
        }
    }
}

index.js. entry file:

import Vue from "vue";
import App from "./app.vue";

const root = document.getElementById('root');

new Vue({
    render: (h) => h(App)
}).$mount(root)

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="theme-color" content="#000000">
    
    <title>vue Webpack</title>
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>

app.vue component

<template>
    <div class="test">{{test}}</div>
</template>

<script>
export default {
    data() {
        return {
            test: "Hello Vue"
        }
    }
}
</script>

<style>
    .test {
        color: red;
    }
</style>

猜你喜欢

转载自www.cnblogs.com/Nyan-Workflow-FC/p/10589914.html
今日推荐