我试图将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,因此代码可见。它包含:
componentHandler
我非常确定在加载VueJS应用程序后加载了,因此该引用不存在。
如何在依赖项可用之后确保仅加载 VueJS?
或者,因为我正在使用webpack来构建代码:是否有其他方法来集成MDL?也许将它打包到应用程序中?
答案 0 :(得分:1)
这是一个linting错误而不是实际的代码错误。
linter 无法找到名为componentHandler
的方法/变量。并不一定意味着代码无法正常工作,请尝试使用window.componentHandler
让催眠剂停止投诉。您还可以查看linter ignore规则以忽略该特定行,然后查看它是否构建。
linter在webpack vue模板的构建过程中运行,因此构建将失败,因为它无法找到您在vue代码库中使用的引用。 linter不知道你在html文件中外部加载的脚本。
正如Bert所说,我也会删除defer
如果您不熟悉短信,那么它只是查看您的js代码并检查您是否使用了未定义的变量(例如在这种情况下),或者使用了错误的缩进等.vue模板放了在构建过程中使用linter,这样您就无法获得正确的构建,直到您修复了linter要求您修复的所有内容。您可以完全禁用linting,但我建议不要使用它,因为它可以提高整体代码质量,如果你把它保持在imo。