代码之家  ›  专栏  ›  技术社区  ›  Gregor Voinov

带有scrollmagic的Nuxtjs告诉我“窗口未定义”

  •  3
  • Gregor Voinov  · 技术社区  · 7 年前

    我想将scrollmagic与nuxtjs结合使用。

    我通过npm安装了scrollmagic。

    npm install scrollmagic
    

    在我的nuxt中。配置。我添加的js文件

    build: {
        vendor: ['scrollmagic']
    },
    

    在我的页面/索引中。vue文件我只是导入了它。

    import ScrollMagic from 'scrollmagic'
    

    但这只会导致这个错误

    [vue路由器]无法解析异步组件默认值: ReferenceError:未定义窗口[vue路由器]未捕获错误 路线导航期间:ReferenceError:未定义窗口 位于C:\pathto\node\u modules\scrollmagic\scrollmagic\uncompressed\scrollmagic。js:37:2 位于C:\pathto\node\u modules\scrollmagic\scrollmagic\uncompressed\scrollmagic。js:22:20 at对象。(C:\pathto\node\u modules\scrollmagic\scrollmagic\uncompressed\scrollmagic.js:27:2)

    我怎样才能解决这个问题?

    1 回复  |  直到 7 年前
        1
  •  13
  •   Aldarund    5 年前

    将名为“scrollmagic.js”的文件添加到插件文件夹中,并将以下代码粘贴到其中:

    插件/scrollmagic。js公司

    import ScrollMagic from 'scrollmagic'
    

    将插件添加到nuxt。配置。js文件

    nuxt编号。配置。js公司

    module.exports = {
      build: {
        vendor: ['scrollmagic']
      },
      plugins: [
        // ssr: false to only include it on client-side
        { src: '~/plugins/scrollmagic.js', ssr: false }
      ]
    }
    

    将其用于 if (process.client) {}

    页面或组件

    <script>
    let scrollmagic
    if (process.client) {
      scrollmagic = require('scrollmagic')
    // use scrollmagic
    }
    </script>
    

    有关更多信息,请参阅有关此主题的优秀文档: https://nuxtjs.org/guide/plugins/