首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅使用JavaScript ES6从浏览器中的包(如tippyjs )导入/导出模块

仅使用JavaScript ES6从浏览器中的包(如tippyjs )导入/导出模块
EN

Stack Overflow用户
提问于 2021-04-02 21:19:20
回答 1查看 425关注 0票数 1

是否可以只使用JavaScript ES6从像tippyjs (https://github.com/atomiks/tippyjs)这样的包中导入模块?我尝试通过npm在本地安装该包,并使用如下文件:

代码语言:javascript
复制
import tippy from '../node_modules/tippy.js/dist/tippy.esm.js';

但是浏览器给了我这个错误:

代码语言:javascript
复制
validation.ts:46 Uncaught ReferenceError: process is not defined

我还试图“复制”CDN正在做的事情,但没有成功。多亏了什么魔法,CDN才能工作?

代码语言:javascript
复制
<script src="https://unpkg.com/@popperjs/core@2"></script>
<script src="https://unpkg.com/tippy.js@6"></script>

我知道我应该使用CDN,CDN是很好的ecc。但我只想在我的HTML中有一个单独的js模块文件,其中所有本地文件的导入都是:

代码语言:javascript
复制
<script type="module" src="js/modules.js"></script>

不能只依赖Can。

我错过了什么?

请注意,我不是usign node.js,只是一个html页面和一些JavaScript。

EN

回答 1

Stack Overflow用户

发布于 2021-04-02 22:32:20

我不认为可以在浏览器中使用ES6模块,因为tippy.js引用popper的方式。它使用浏览器无法理解的语法import { createPopper, applyStyles } from '@popperjs/core';。有一个关于bootstrap的issue about this on Github,显然也有同样的问题。

顺便说一句,我不明白你得到的错误,我得到了问题中的那个。我的HTML文件如下所示,tippy.js安装在相同的文件夹中:

代码语言:javascript
复制
<body>
    <button id="myButton">My Button</button>
    <script type="module">
        import tippy from '../node_modules/tippy.js/dist/tippy.esm.js';
        tippy('#myButton', {
            content: 'Tooltip!',
        });
    </script>
</body>

运行此命令会出现错误:

未捕获核心:无法解析模块说明符“@popperjs/TypeError”。相对引用必须以"/“、"./”或"../“开头。

我不认为你可以在本地编辑tippy.js中的导入来修复这个问题:popper自己的导入对我来说也不起作用。

如果您想要创建一个可以引用的.js文件,作为一个answer to the issue says,解决方法是使用像webpack这样的模块捆绑器。这也回避了一个问题,如果esm安装只能从节点使用,那么esm安装的意义是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66919931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档