sách gpt4 ai đã đi

ecmascript-6 - 我可以使用 `export` 将对象导出为 "` module.export`"

In lại 作者:行者123 更新时间:2023-12-04 04:48:30 26 4
mua khóa gpt4 Nike

我想我要求的是不可能的OOB,但我想确认一下。

我们正在升级到 ES6(使用 Babel)。项目是一个网站,使用 AMD (requirejs)。我想将实用程序模块 (foolib) 转换为 ES6,但从 ES6(使用 nhập khẩu)或现有的 ES5/AMD 使用它模块。

// foolib.es6
export { // as expected, this doesn't work
method1: function () { ... },
value1: 123.456
};

// consumer1.es6
import foolib from "foolib";

// consumer2.js
define(["foolib"], function (foolib) {});

我明白解决方案是改变foolib.es6như sau:

export function method1() { ... };
export let value1 = 123.456;

然而实际上从 foolib 返回的条目数量是荒谬的。所以我希望有一种方法可以导出现有的对象文字而无需重写每一行。

此外,我意识到这很可能是不可能的,因为 AMD 导入(使用 define)Và nhập khẩu 机制(稍后使用 exports 对象有值卡在它上面,包括 mặc định 值,而前者期望返回单个值。

我认为可行的一个解决方案是将我的对象作为 mặc định từ foolib.es6 中导出,然后调整 requirejs 默认加载器以检查导入的值是否是一个esModule 并返回默认值:value && value.__esModule && value.default ||值(value)。这应该工作吗? (我仍然希望有更简单的解决方案)。

1 Câu trả lời

您用于导出对象的语法无效,因为您没有给对象命名,所以它不能是命名导出,并且您没有指定它是默认导出,所以它不能是默认导出。将其更改为默认导出:

// foolib.es6
export default {
method1: function () {},
value1: 123.456
}
// consumer.es6
import foolib from "foolib";

console.log(foolib.value) //=> 123.456

Bạn có thể sử dụng babel-plugin-add-module-exports Babel 插件将默认导出恢复为 Node-land 中 module.exports 的值。

正如您发现的那样,确保在任何其他 -modules- 插件之前包含此插件,例如 transform-es2015-modules-amd.

关于ecmascript-6 - 我可以使用 `export` 将对象导出为 "` module.export`",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39294258/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com