如何在创建VueJS实例之前加载外部托管(CDN)JS库*?

时间:2017-06-26 19:57:08

标签: javascript webpack vue.js material-design-lite

我试图将Material Design Lite集成到VueJS应用程序中。我找到了以下博文:

https://posva.net/js/2015/08/26/using-material-design-lite-with-vuejs

不幸的是,当我把它添加到我的" main.js"从vuejs cli工具创建的文件我收到以下错误:

ERROR in ./src/main.js

  ✘  http://eslint.org/docs/rules/no-undef  'componentHandler' is not defined  
  /data/src/main.js:474:5
      componentHandler.upgradeElement(this.el)

我将分支推送到github,因此代码可见。它包含:

我非常确定在加载VueJS应用程序后加载了,因此该引用不存在。

如何在依赖项可用之后确保仅加载 VueJS?

或者,因为我正在使用webpack来构建代码:是否有其他方法来集成MDL?也许将它打包到应用程序中?

1 个答案:

答案 0 :(得分:1)

这是一个linting错误而不是实际的代码错误。 linter 无法找到名为componentHandler的方法/变量。并不一定意味着代码无法正常工作,请尝试使用window.componentHandler让催眠剂停止投诉。您还可以查看linter ignore规则以忽略该特定行,然后查看它是否构建。

linter在webpack vue模板的构建过程中运行,因此构建将失败,因为它无法找到您在vue代码库中使用的引用。 linter不知道你在html文件中外部加载的脚本。

正如Bert所说,我也会删除defer

如果您不熟悉短信,那么它只是查看您的js代码并检查您是否使用了未定义的变量(例如在这种情况下),或者使用了错误的缩进等.vue模板放了在构建过程中使用linter,这样您就无法获得正确的构建,直到您修复了linter要求您修复的所有内容。您可以完全禁用linting,但我建议不要使用它,因为它可以提高整体代码质量,如果你把它保持在imo。