淘先锋技术网

首页 1 2 3 4 5 6 7

Vue.js 是当前流行的前端 JavaScript 框架之一,它以其简单易用的设计理念和高效的性能而备受青睐。在使用 Vue.js 开发完一个网站或应用之后,为了让其能够在不同环境下运行,我们需要将其打包成静态文件并发布到服务器上。在打包过程中,我们需要注意将静态资源(比如图片、样式文件、字体等)也打包进去,这样网站或应用在不同环境下才能正常展示。

vue打包assets

Vue.js 的打包工具通常是 webpack,本篇文章将介绍如何使用 webpack 打包 Vue.js 应用中的 assets。


// webpack.config.js

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

module.exports = {
   entry: './src/main.js',
   output: {
      path: path.resolve(__dirname, './dist'),
      publicPath: '/dist/',
      filename: 'build.js'
   },
   resolve: {
      extensions: ['.js', '.vue', '.json'],
      alias: {
         '@': path.resolve(__dirname, './src'),
      }
   },
   module: {
      rules: [
         {
            test: /\.vue$/,
            loader: 'vue-loader'
         },
         {
            test: /\.js$/,
            loader: 'babel-loader',
            exclude: /node_modules/
         },
         {
            test: /\.(png|jpg|gif|svg)$/,
            loader: 'file-loader',
            options: {
               name: '[name].[ext]?[hash]'
            },
         },
         {
            test: /\.(woff|woff2|eot|ttf|otf)$/,
            loader: 'file-loader',
            options: {
               name: '[name].[ext]?[hash]'
            },
         },
         {
            test: /\.css$/,
            use: [
               'vue-style-loader',
               'css-loader'
            ],
         },
      ]
   },
   plugins: [
      new VueLoaderPlugin()
   ],
   devServer: {
      historyApiFallback: true,
      noInfo: true,
   },
   performance: {
      hints: false,
   },
   devtool: '#eval-source-map',
}

上述代码是一个简化版的 webpack 配置文件。其中,我们使用了 file-loader 来处理图片和字体文件的导入,使用 css-loader 加载 css 文件,使用 VueLoaderPlugin 来处理 Vue.js 单文件组件。由于 Vue.js 中有很多可以 reuse 的 component,我们可以将他们的样式打包成单独的 .css 文件并由 HTML 在引入时调用。此外,我们还使用了 performance,noInfo 和 devtool 等选项,以便在编译过程中输出开发者需要的 log 信息,节约开发时间。

在以上配置文件中,file-loader 用于处理 .png, .jpg, .gif, .svg, .woff, .woff2, .eot, .ttf, .otf 等类型的文件。依照前面的配置,webpack 会在 src 文件夹里寻找这些文件并将它们转换为 base64 或者链接,然后将它们打包到后续生成的文件中。

总之,打包 Vue.js 应用的时候,我们一定要注意将 assets 打包进去,并对图片和字体等资源做相应的处理,以便在多种环境下都能正常展示我们的网站和应用。