最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何将库发布到npm,可以同时用于导入和需求?

运维笔记admin23浏览0评论

如何将库发布到npm,可以同时用于导入和需求?

如何将库发布到npm,可以同时用于导入和需求?

[tealium-tracker用es6编写,并在发布到npm之前使用Babel进行编译。

当消费者这样做时:

import initTealiumTracker from "tealium-tracker";

一切正常。

但是,某些消费者希望使用require而不是import,并且必须附加.default

const initTealiumTracker = require("tealium-tracker).default;

如何发布库以避免附加.default

我希望消费者能够做到这一点:

import initTealiumTracker from "tealium-tracker";

const initTealiumTracker = require("tealium-tracker);

Source code

回答如下:

在您的源代码中,如果可以使用commonJS语法进行导入和导出...

一种选择是将所有importexport替换为requiremodule.exports。看起来webpack不允许混合语法(ES6和commonJS模块)。

因此您的索引文件可以将依赖模块的功能导入为

const { callUtag, flushUtagQueue } = require("./utagCaller");

并将默认函数导出为

module.exports = initTealiumTracker;
module.exports.default = initTealiumTracker;

同样,您的从属模块可以将功能导出为

module.exports = { callUtag, flushUtagQueue };

这样,消费者应该可以使用其中任何一个

import initTealiumTracker2 from "tealium-tracker";

OR

const initTealiumTracker1 = require("tealium-tracker");
发布评论

评论列表(0)

  1. 暂无评论