首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在wordpress主题中添加JS模块

问如何在wordpress主题中添加JS模块
EN

Stack Overflow用户
提问于 2020-03-13 09:22:04
回答 1查看 2K关注 0票数 0

我想添加一个js文件,它将一个类导出到我的WordPress主题。但是在使用wp_enqueue_script()函数时,它显示了

Uncaught :意外令牌“导出”

如何添加js模块以使类的导出和导入正常工作?

这是我的functions.php文件。在这里,countUp.min.js导出一个类,main.js导入该类,并将其用于某些功能。但是我不能进出口。

代码语言:javascript
复制
function loadJS(){
    wp_register_script('fontawesome', 'https://kit.fontawesome.com/486392b9f0.js', '','', true);
    wp_enqueue_script('fontawesome');
    wp_register_script('countUp', get_template_directory_uri().'/js/countUp.min.js', '', 1, true);
    wp_enqueue_script('countUp');
    wp_register_script('showOnScroll', get_template_directory_uri().'/js/show-on-scroll.js', '', 1, true);
    wp_enqueue_script('showOnScroll');
    wp_register_script('products', get_template_directory_uri().'/js/products.js', '', 1, true);
    wp_enqueue_script('products');
    wp_register_script('main', get_template_directory_uri().'/js/main.js', array('countUp'), 1, true);
    wp_enqueue_script('main');
}
add_action('wp_enqueue_scripts', 'loadJS');

在main.js文件中,导入语句是

代码语言:javascript
复制
import { CountUp } from './countUp.min.js';

我得到的错误是

代码语言:javascript
复制
Uncaught SyntaxError: Cannot use import statement outside a module
EN

回答 1

Stack Overflow用户

发布于 2022-06-25 20:34:04

为此,您需要确保将main.js作为ES6模块加载。首先,在script_loader_tag钩子上添加一个过滤器;

代码语言:javascript
复制
add_filter( 'script_loader_tag', 'load_as_ES6',10,3 );

它将调用将类型“模块”附加到脚本标记的函数。

代码语言:javascript
复制
public function load_as_ES6($tag, $handle, $source){
        if('main'===$handle){
            $tag ='<script src="' . $source . '" type="module" ></script>';
        }
        return $tag;
    }

然后,main.js将被识别为一个ES6模块,该模块可以通过在文件顶部写入类似的内容来导入其他ES6模块的导出:

代码语言:javascript
复制
import { countUp } from 'path_to_module/countUp.min.js'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60667811

复制
相关文章

相似问题

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