前言

紧接着上两篇关于vuepress的文章,在打包时又遇到一个错误。

由于我编写的组件包,引用了window对象,vuepress dev运行是正常的,但一旦vuepress build便会抛出

server-bundle.js:63963
    if (window) {
    ^

ReferenceError: window is not defined
    at searchAddressData (server-bundle.js:63963:5)
    at VueComponent.<anonymous> (server-bundle.js:64106:7)
    at Timeout.later [as _onTimeout] (server-bundle.js:63860:23)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10)

解决办法

代码如下

export default ({
    Vue,
    options, // 附加到根实例的一些选项
    router, // 当前应用的路由实例
    siteData, // 站点元数据
    isServer // 当前应用配置是处于 服务端渲染 或 客户端
}) => {
    if(!isServer){
        import('sf-view-vue').then(module => {
            const { SearchBox } = module
            Vue.use(SearchBox)
        })
    }
};

只有在客户端的情况下,才会引用我编写的组件包,问题成功解决

Logo

一站式 AI 云服务平台

更多推荐