[英]How can I export all functions of a JavaScript object as module without having to make a lot of changes to the file?
我有這個原始的非模塊化 JavaScript 文件(luxon.js)。
然后我有一個 JavaScript 文件(實際上是 TypeScript),我像這樣導入它:
import * as luxon from './luxon.js';
所以不,我需要把 luxon.js 變成一個模塊。 我通過刪除來做到這一點
var luxon = (function (exports) {
和
}({}));
然后,我在最后添加以下行。
export { DateTime, Duration, Interval, Info, Zone, FixedOffsetZone, IANAZone, InvalidZone, LocalZone, Settings };
這工作正常(在谷歌瀏覽器中)。
但假設這是更多的功能。
我怎么能做類似的事情
exports exports;
或者
export * from exports;
所以我不必手動枚舉對象“exports”中已經存在的所有函數?
筆記:
對象導出存在,並且具有已分配給自身的所有要導出的功能。
var exports = {};
exports.DateTime = DateTime;
exports.Duration = Duration;
exports.Interval = Interval;
exports.Info = Info;
exports.Zone = Zone;
exports.FixedOffsetZone = FixedOffsetZone;
exports.IANAZone = IANAZone;
exports.InvalidZone = InvalidZone;
exports.LocalZone = LocalZone;
exports.Settings = Settings;
另請注意,請不要向我提供指向 luxon 已經模塊化的 npm 存儲庫的鏈接。
我對 luxon 不感興趣,我感興趣的是如何快速模塊化一些還不是模塊的東西(用最少的努力)。
我有點設法做到了。 我會建議您使用ES6 版本的庫來滿足您的需求。 如果您仍想使用瀏覽器全局版本作為模塊,請按照以下步驟操作。
luxon.js 的變化:
改變這個
var luxon = (function (exports) {
'use strict';
這樣
export default (function (exports) {
'use strict'
索引.html
<script type="module" src="index.js"></script>
索引.js
import luxon from "./luxon.js";
console.log(luxon.DateTime.local().setZone('America/New_York').minus({ weeks: 1 }).endOf('day').toISO());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.