返回

用Vue.js 2.0与Webpack 4配置创建的可打包项目:分步指南

前端


了解如何利用Vue.js 2.0和Webpack 4建立可打包项目对于Vue开发者是至关重要的一环。这份分步指南会向你展示如何配置你的项目、打包你的代码和优化你的项目。让咱们一起踏上精彩的打包之旅吧!




1. 初始化项目

$ vue create vue-webpack-project

2. 安装Webpack和Babel插件

$ npm install webpack webpack-cli webpack-dev-server vue-loader babel-loader @babel/preset-env @babel/core-js babel-plugin-transform-class-properties css-loader style-loader

3. 修改webpack.config.js

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

module.exports = {
  entry: './src/main.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve('dist'),
    libraryTarget: 'umd',
    globalName: 'vueApp'
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          transformAssetUrls: {
            img: 'src',
            image: 'data-url'
          }
        }
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader'
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.(eot|otf|ttf|woff|woff2)$/,
        loader: 'file-loader'
      },
      {
        test: /\.(svg|png|jpe?g|gif)(\?\S+)$/,
        use: [
          {
            loader: 'file-loader'
          },
          {
            loader: 'image-webpack-loader',
            options: {
              disable: true,
              query: {
                quality: 85
              }
            }
          }
        ]
      },
      {
        test: /\.html$/,
        loader: 'html-loader'
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ],
  resolve: {
    extensions: [
      '.js',
      '.vue',
      '.css'
    ],
    modules: [
      path.resolve('node_modules'),
      path.resolve('src')
    ],
    alias: {
      'vue
const path = require('path');
const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports = {
  entry: './src/main.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve('dist'),
    libraryTarget: 'umd',
    globalName: 'vueApp'
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          transformAssetUrls: {
            img: 'src',
            image: 'data-url'
          }
        }
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader'
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.(eot|otf|ttf|woff|woff2)$/,
        loader: 'file-loader'
      },
      {
        test: /\.(svg|png|jpe?g|gif)(\?\S+)$/,
        use: [
          {
            loader: 'file-loader'
          },
          {
            loader: 'image-webpack-loader',
            options: {
              disable: true,
              query: {
                quality: 85
              }
            }
          }
        ]
      },
      {
        test: /\.html$/,
        loader: 'html-loader'
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ],
  resolve: {
    extensions: [
      '.js',
      '.vue',
      '.css'
    ],
    modules: [
      path.resolve('node_modules'),
      path.resolve('src')
    ],
    alias: {
      'vue$': 'vue/dist/vue.common'
    }
  },
  devServer: {
    historyApi dirigirall: true,
    open: true,
    overlay: true
  }
};
#x27;
: 'vue/dist/vue.common' } }, devServer: { historyApi dirigirall: true, open: true, overlay: true } };

4. 修改package.json文件

"scripts": {
  "dev": "webpack-dev-server --config webpack.config.js --open",
  "build": "webpack --config webpack.config.js"
}

5. 优化项目

  • 生产环境下,确保mode设为'production'。
  • 安装并使用extract-text-webpack-plugin、UglifyJS Plugin和webpack-merge插件。
  • 利用webpack-bundle-size插件分析bundle大小。

6. 合理打包你的代码

npm run build

至此,祝贺你成功创建了一个可打包的Vue项目。这个项目可以打包你的代码,并且优化你的项目。相信这份分步指南能让你理解和掌握创建可打包项目的精髓。快来踏上打包之旅,放飞你对前端的梦想吧!