【问题标题】:How to import an external js file in Quasar projectQuasar项目中如何导入外部js文件
【发布时间】:2021-04-01 02:40:45
【问题描述】:

在早期的javascript项目中,我们创建了一个名为kresource.js的文件,其代码如下

//kresource file, contains some functions
var kresource = (function () {
    function kresource () {
    }
    kresource.getLang = function () {
      console.log('en')    //it's only a sample...
    }
    return kresource
})()

在html页面中,我们可以通过kresource.getLang()访问该函数,但是在Quasar vue页面中,如何导入这个文件,以及访问函数?

//index.vue file
import kresource from '../js/kresource.js'

[Vue warn]: Error in created hook: "TypeError: _js_kresource_js__WEBPACK_IMPORTED_MODULE_0___default.a.getLang is not a function"

【问题讨论】:

  • kresource 文件需要导出某些内容才能使导入工作。
  • 我应该更改 kresource 文件吗?我真的很想保持文件不变,因为这些文件中的一些可以用于早期项目,而不仅仅是 quasar 项目。谢谢
  • 试试require('../js/kresource.js')
  • 附加行后:module.exports = kresource,它可以工作,仍然需要更改。我将对文件进行一些更改。谢谢@danh

标签: vue.js quasar


【解决方案1】:

它不起作用,因为您需要将该代码用作模块,而不是依赖 var 是全局的。

您需要在文件中添加export。在文件末尾你需要放:

export default kresource

在你打算使用它的文件中:

import kresource from 'path to the file'

注意:您可以阅读更多关于 JS 中的模块的信息,以便更好地了解什么是 hapening,并且不要使用 var 使用 const,因为该变量永远不会重新签名,并且最好保持全局范围更清洁。

【讨论】:

  • 这是一种非常有用的导入外部文件的方法。谢谢
猜你喜欢
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 2016-11-09
  • 2021-12-02
  • 2012-05-27
  • 2018-04-06
  • 2017-10-26
  • 1970-01-01
相关资源
最近更新 更多