问题描述
这是我的问题:我创建了一个在chrome扩展程序中使用的库。该库导出两个类,其中一个应该在后台脚本中导入,一个应该在内容脚本中导入。
后台脚本(以及扩展页面中使用的其他脚本)可以处理模块,因此我想使用ES6模块的本机“导入” /“导出”功能。
内容脚本不支持模块。这意味着,如果我在库脚本中使用“ export”关键字,则会引发错误,并且我将无法再使用该库。
当前,我根本没有实现模块,这解决了问题,但是我想实现此功能,以便在有人访问它时可以使用它。
是否可以同时将我的库功能既作为模块又作为非模块提供给两种脚本?那实际上是我应该做的事情吗?
解决方法
最后,我设置了两个git分支:
1-在第一个中,我只是保留了文件中没有“导出”的内容,因此没有ES6模块功能
2-另一个分支,我决定将其设置为在NPM上发布,并在此分支中导出我的课程。如果您使用NPM进行开发,那么很可能还拥有像webpack这样的捆绑器来跟踪模块和依赖项。
每当进行更改时,我都会在master(没有导出)分支中进行更改,然后将更改合并到npm分支中,以避免两次编写相同的代码