使用 Vue.js 过程中的一些笔记。

FAQ

记录一些细节问题以及不易搜索到的解决方法。

Parcel.js + Vue

非父子组件的通信

Build Lib Without Dependencies

使用 vue-cli@3.x 构建自己的库时,因为又引入了第三方组件,打包后将代码合在了一起显得很大。
所以应当只打包自己的组件,而不打包内部引入组件的代码。(依赖自然会安装)

Webpack 文档中存在这样的选项,也就是注明 externals
外部扩展 - Webpack

可以在 vue.config.js 中定义 Webpack 配置。
configureWebpack

module.exports = {
  configureWebpack: {
    // externals: ['v-tooltip']
    // 但是连字符可能识别有问题, 不能这么写
    externas: {
      VTooltip: 'v-tooltip',
    },
  },
}

SPA 预渲染

使用HTML5 History 模式可以使 URL 显得更美观。
但与此同时,由于是单页应用,没有后台配置支持的话,直接访问相关路由或刷新时会导致页面访问 404。
这时,又不想配置后台,又不想放弃 History 模式,则还有另外一条出路。

也就是进行预渲染。

可用的插件:

Install

yarn add -D prerender-spa-plugin

Config

// vue.config.js
const path = require('path')
const PrerenderSPAPlugin = require('prerender-spa-plugin')

module.exports = {
  configureWebpack: {
    plugins: [
      new PrerenderSPAPlugin({
        // Required - The path to the webpack-outputted app to prerender.
        staticDir: path.join(__dirname, 'dist'),
        // Required - Routes to render.
        routes: ['/', '/go', '/unit'],
      }),
    ],
  },
}

To Be Continued.