【问题标题】:Vue.js 'import' does not work within external js fileVue.js“导入”在外部 js 文件中不起作用
【发布时间】:2021-02-20 21:36:51
【问题描述】:

让我试着解释一下……

我有一个不起作用的utils.js 文件:

import dayjs from 'dayjs'; //https://github.com/iamkun/dayjs

exports.utils = (function() {
    someDateFunction() {
       ...some dayjs function calls ....
    }
})();

(正如回答者所说,它必须是module.exports - 没关系。我有其他源文件可以以任何方式工作 - 有或没有预先注释的module.。)

当用 import 语句声明第一行时,vue-cli 似乎可以正确编译。没有显示错误。在浏览器中运行显示:

Uncaught ReferenceError: exports is not defined
    at eval (utils.js?2f14:3)
    at Module../src/assets/js/utils.js (app.js:1541)
    at __webpack_require__ (app.js:849)
    at fn (app.js:151)
    ...

通过注意
const { utils } = require("@/assets/js/utils.js");

确实包含/导入此utils.jsfile

为什么不允许在文件中导入?
如果您需要有关我运行的版本的信息,请告诉我,并告诉我哪些命令将显示所需的信息(在 macos 上运行)。

我已经在网上搜索过了。这个问题似乎在过去就知道了。有一些线索可以用 typescript 或 vue js 解决。

没有什么对我有用。我一定不会是第一个遇到此类问题的人,不是吗? 任何帮助表示赞赏。

参考:
https://stackoverflow.com/a/55334703/845117

我在 package.json 中的依赖项

"dependencies": {
  "axios": "^0.21.1",
  "bootstrap": "^4.5.3",
  "bootstrap-vue": "^2.18.0",
  "core-js": "^3.6.5",
  "cropperjs": "^1.5.9",
  "dayjs": "^1.9.6",
  "vue": "^2.6.12"
},

【问题讨论】:

  • 删除node_modules并重新安装
  • 我无法使用相关代码在默认的 Vue CLI 脚手架项目中重现此错误。您能否链接到重现该问题的 GitHub 存储库?
  • @tuhin47 你的提议无效。我还用 vue-cli 完全设置了项目。

标签: javascript vue.js import vuejs2


【解决方案1】:

我刚刚找到的一个解决方案:

而不是

import dayjs from 'dayjs';

我用

const dayjs = require('dayjs');

这行得通。我通过阅读https://www.educba.com/require-vs-import/
我不能真正争论为什么它以一种方式而不是另一种方式起作用。 (由于我不是母语人士,我只理解了文章的 15%。而且我还没有尝试过 tuhin47 的建议)

【讨论】:

    【解决方案2】:

    它说exports不存在,因为它应该是module.exports =

    【讨论】:

    • 这对我的问题没有帮助。使用没有导入的设置可以正常工作。 vue-cli 和浏览器都会接受这两个语句 - 无论是否编写前导“模块”。
    猜你喜欢
    • 2017-11-08
    • 2011-10-18
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 2019-11-07
    • 1970-01-01
    相关资源
    最近更新 更多