Uncaught Error: ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ./assets/js/jquery/interview.js
当我尝试使用 module.exports 导出函数以及将其导入到另一个文件中时,出现此错误。我尝试使用export default,但是调用原始文件的JS文件找不到任何方法。我也发现了这个话题 https://github.com/babel/babel/issues/12731但我没有 babel.config.json 文件...
这是我的代码:
Interview.prototype = function ($) {
const collapseLocalStoredElements = function (localStorageId) {
let collapseItemsIds = localStorage.getItem(localStorageId);
console.log(collapseItemsIds)
}
return {
collapseLocalStoredElements: collapseLocalStoredElements,
};
}(jQuery);
// export default Interview;
module.exports = Interview;
应用程序.js
//Import
let InterviewImport = require ('./js/jquery/interview');
//Uses
let Interview = new InterviewImport();
console.log(Interview.collapseLocalStoredElements('collapseItemsIds'));
谢谢!!
尝试使用 ESM 语法。
export default Interview;
应用程序.js
Import Interview from ('./js/jquery/interview');
您的代码中似乎还有太多右括号,我删除了我认为不必要的右括号。该功能似乎也是自动执行的。您可能想删除它。
Interview.prototype = function (localStorageId) {
let collapseItemsIds = localStorage.getItem(localStorageId);
console.log(collapseItemsIds);
};
不知道为什么它被否决,但 Dotista 的答案对我有用(我无法评论或喜欢他们的答案)。 我正在测试将项目切换到 RSPack 并将 ES6 导入与 CommonJS 导出结合起来似乎是一个问题(这不是我的 webpack 设置的问题)。将所有内容切换到 ES6 版本更容易。
发生在我身上,因为我正在将某些内容作为 ES 模块导入,并在同一文件中以 CommonJS 样式导出所有内容。