Penggunaan persekitaran pengeluaran


Kebanyakan kandungan berikut didayakan secara lalai apabila anda menggunakan Vue CLI. Bahagian ini hanya berkaitan untuk tetapan binaan tersuai anda.


Direktori





Dalam persekitaran pembangunan, Vue akan menyediakan banyak amaran untuk membantu Anda menangani kesilapan dan perangkap biasa. Dalam persekitaran pengeluaran, kenyataan amaran ini tidak berguna, tetapi akan meningkatkan saiz aplikasi. Selain itu, beberapa semakan amaran mempunyai overhed masa jalan yang kecil yang boleh dielakkan dalam mod pengeluaran.

<script> 元素引入 Vue 而不提前进行构建,请记得在生产环境下使用压缩后的版本 (vue.min.js)。两种版本都可以在安装指导中找到。


使用构建工具

当使用 webpack 或 Browserify 类似的构建工具时,Vue 源码会根据 process.env.NODE_ENV 决定是否启用生产环境模式,默认情况为开发环境模式。在 webpack 与 Browserify 中都有方法来覆盖此变量,以启用 Vue 的生产环境模式,同时在构建过程中警告语句也会被压缩工具去除。所有这些在 vue-cli 模板中都预先配置好了,但了解一下怎样配置会更好。

webpack

在 webpack 4+ 中,你可以使用 mode 选项:

module.exports = {
  mode: 'production'
}

但是在 webpack 3 及其更低版本中,你需要使用 DefinePlugin

var webpack = require('webpack')

module.exports = {
  // ...
  plugins: [
    // ...
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production')
    })
  ]
}

Browserify

// 使用 envify 自定义模块指定环境变量var envify = require('envify/custom')

browserify: {  dist: {    options: {
        // 该函数用来调整 grunt-browserify 的默认指令
        configure: b => b
        .transform('vueify')
        .transform(
            // 用来处理 `node_modules` 文件
          { global: true },
          envify({ NODE_ENV: 'production' })
        )
        .bundle()
    }
  }
}
  • atau gunakan envify dalam Gulp:

const replace = require('rollup-plugin-replace')
rollup({  // ...
  plugins: [
    replace({      'process.env.NODE_ENV': JSON.stringify( 'production' )
    })
  ]
}).then(...)
Rollup

Gunakan

rollup-plugin-replace

: rrreee


pra-penyusun templat

Apabila menggunakan templat dalam DOM atau templat rentetan dikompilasi dalam JavaScript, templat masa pemaparan dikompilasi Biasanya proses ini cukup pantas, tetapi aplikasi sensitif prestasi adalah yang terbaik untuk mengelakkan penggunaan ini.

Cara paling mudah untuk prapenyusun templat adalah dengan menggunakan

Komponen Fail Tunggal

- tetapan binaan yang berkaitan akan mengendalikan prapenyusun secara automatik, jadi kod terbina sudah mengandungi fungsi pemaparan terkumpul dan bukannya rentetan templat asal . Jika anda menggunakan webpack dan suka mengasingkan JavaScript dan fail templat, anda boleh menggunakan

vue-template-loader

, yang juga boleh menukar fail templat kepada fungsi pemaparan JavaScript semasa proses binaan.


Ekstrak CSS komponen

Apabila menggunakan komponen fail tunggal, CSS dalam komponen akan disuntik secara dinamik melalui JavaScript dalam bentuk <style> /kod> teg. Ini mempunyai overhed masa jalan yang kecil dan boleh menyebabkan sedikit "kandungan tidak digayakan berkelip (fouc)" jika anda menggunakan pemaparan sebelah pelayan. Mengekstrak CSS untuk semua komponen ke dalam fail yang sama mengelakkan masalah ini dan juga membolehkan CSS dikecilkan dan dicache dengan lebih baik.

Lihat dokumentasi masing-masing untuk alat binaan ini untuk mengetahui lebih lanjut: <style> 标签的方式通过 JavaScript 动态注入。这有一些小小的运行时开销,如果你使用服务端渲染,这会导致一段“无样式内容闪烁 (fouc)”。将所有组件的 CSS 提取到同一个文件可以避免这个问题,也会让 CSS 更好地进行压缩和缓存。

查阅这个构建工具各自的文档来了解更多:

Rollup-rollup vue


🎜🎜🎜🎜

Jejaki ralat masa jalan


Jika ralat masa jalan berlaku semasa komponen sedang dipaparkan, ralat akan dihantar kepada fungsi konfigurasi global Vue.config.errorHandler (jika ditetapkan). Adalah idea yang baik untuk menggunakan fungsi cangkuk ini dengan perkhidmatan penjejakan ralat. Contohnya, Sentry, yang menyediakan integrasi rasmi untuk Vue.