如何在 WordPress 网站中使用 Importmap

news/2024/9/22 9:57:45
我一直在尝试开发一个基本的 wordpress 经典主题,无需构建步骤,我可以将其用作入门主题,以便将来开发客户端站点。在撰写本文时,我没有做任何自由职业,因为我正在为一家网络机构工作,并且我们正在构建的网站都涉及构建步骤。所以我想写一个关于如何在 wordpress 主题中使用 importmap 的简短教程。career tracker 是我现有的一个副项目,它已经使用了 importmap,无需构建步骤,但它是一个纯 javascript 应用程序。 让我们看看如何在 wordpress 世界中做到这一点。 入队模块脚本在我的主题functions.php中,我使用wordpress中的wp_enqueue_script_module函数将我的javascript文件app.js作为模块脚本排入队列。wp_enqueue_script_module( 'frontend-scripts', gearup_theme_url . '/static/js/app.js', [], gearup_theme_version, true );登录后复制这将输出到前端的以下脚本标签。<script type="module" src="http://test.local/wp-content/themes/gearup/static/js/app.js?ver=0.1.0" id="frontend-scripts-js-module"></script>登录后复制我的 javascript 文件被放置在主题文件夹的 static 文件夹中。static├── css│?? ├── app.css│?? ├── global.css│?? ├── reset.css│?? ├── utils.css│?? └── variables.css└── js ├── admin.js ├── app.js ├── components │?? └── menu.js └── utils └── index.js登录后复制正如您在此文件结构中所看到的,我需要将 utils 文件夹中的 index.js 和 components 文件夹中的 menu.js 导入到我的 app.js 中。在添加 importmap 之前,让我们看看当我在 app.js 中导入这两个文件时它的样子。// utilsimport { ondocumentready } from './utils/index.js';// componentsimport menu from './components/menu.js';登录后复制但是我想要的是像这样导入文件。// utilsimport { ondocumentready } from 'utils/index.js';// componentsimport menu from 'components/menu.js';登录后复制登录后复制一旦我将导入更改为这种格式,浏览器将在控制台中抛出此错误。uncaught typeerror: failed to resolve module specifier "utils/index.js". relative references must start with either "/", "./", or "../".登录后复制 importmap 来救援将其添加到模板 html head 标签中。您可能需要在 php 中渲染此部分,以便获得静态文件夹的动态 url。<script type="importmap"> { "imports": { "utils/": "/wp-content/themes/gearup/static/js/utils/", "components/": "/wp-content/themes/gearup/static/js/components/" } }</script>登录后复制 在我的 app.js 中使用它现在有了 importmap 设置,即使这不是 node 环境,我们仍然可以在我们熟悉的结构下导入文件。请记住,文件需要以 .js 结尾。// utilsimport { ondocumentready } from 'utils/index.js';// componentsimport menu from 'components/menu.js';登录后复制登录后复制如果我将 .js 从 utils/index.js 删除到 utils/index,那么浏览器将在控制台中记录此错误。get http://test.local/wp-content/themes/gearup/static/js/utils/index net::err_aborted 404 (not found)登录后复制 将 cdn 中的文件添加到我们的导入映射中<script type="importmap"> { "imports": { "utils/": "/wp-content/themes/gearup/static/js/utils/", "components/": "/wp-content/themes/gearup/static/js/components/", "ccw/": "https://unpkg.com/cucumber-web-components@0.5.2/dist/" } }</script>登录后复制我获取了指向我的 web 组件集合的 cdn 链接,并将其添加到我的导入映射中。添加后,现在我们可以像这样将 web 组件导入到 app.js 中。这不是很漂亮吗?import "ccw/side-nav/index.js";import "ccw/side-nav-item/index.js";import "ccw/icon/index.js";import "ccw/form-layout/index.js";import "ccw/text-field/index.js";import "ccw/email-field/index.js";import "ccw/date-picker/index.js";import "ccw/option/index.js";import "ccw/select/index.js";登录后复制对于 web 组件,显然我没有在我的 wordpress 主题中使用它,但你可以检查我在开头提到的副项目 career tracker,看看它们是如何工作的。 以上就是如何在 WordPress 网站中使用 Importmap的详细内容,更多请关注我的其它相关文章!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/63245.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

一个.NET开源、快速、低延迟的异步套接字服务器和客户端库

前言 最近有不少小伙伴在问:.NET有什么值得推荐的网络通信框架?今天大姚给大家分享一个.NET开源、免费(MIT License)、快速、低延迟的异步套接字服务器和客户端库:NetCoreServer。 项目介绍 NetCoreServer是一个.NET开源、免费(MIT License)、快速、低延迟的异步套接字服…

VMware vCenter Server 7.0U3s 发布下载,新增功能概览

VMware vCenter Server 7.0U3s 发布下载,新增功能概览VMware vCenter Server 7.0U3s 下载 - 集中管理 vSphere 环境 Server Management Software | vCenter | 集中管理 vSphere 环境 请访问原文链接:https://sysin.org/blog/vmware-vcenter-7-u3/,查看最新版。原创作品,转载…

读构建可扩展分布式系统:方法与实践11强一致性

强一致性1. 强一致性 1.1. 最终一致数据库通过跨多台机器分区和复制数据集来获得可扩展性,其代价是要跨副本维持强数据一致性以及允许冲突写入1.1.1. 在更新数据对象后,不同的客户端可能会看到该对象的旧值或新值,直到所有副本都收敛到最新值1.2. 另一类分布式数据库提供一种…

提升软件测试效率与灵活性:探索Mock测试的重要性

Mock测试是测试过程中的一种方法,用于替代那些难以构造或获取的对象,通过创建虚拟对象来进行测试。所谓难以构造的对象如何理解呢? 举例来说,像HttpServletRequest这样的对象需要在具有servlet容器环境的情况下才能创建和获取。而难以获取的对象则是指需要准备相关环境才能…

《机器人SLAM导航核心技术与实战》第1季:第9章_视觉SLAM系统

《机器人SLAM导航核心技术与实战》第1季:第9章_视觉SLAM系统 视频讲解【第1季】9.第9章_视觉SLAM系统-视频讲解【第1季】9.1.第9章_视觉SLAM系统_ORB-SLAM2算法(上)-视频讲解【第1季】9.1.第9章_视觉SLAM系统_ORB-SLAM2算法(下)-视频讲解【第1季】9.2.第9章_视觉SLAM系统_…

Centos7.9 使用 Kubeadm 自动化部署 K8S 集群(一个脚本)

目录一、环境准备1、硬件准备(虚拟主机)2、操作系统版本3、硬件配置4、网络二、注意点1、主机命名格式2、网络插件 flannel 镜像拉取2.1、主机生成公私钥2.2、为啥有 Github 还用 Gitee2.3、将主机公钥添加到 Gitee2.3.1、复制主机上的公钥2.3.2、登录码云2.3.3、设置 -->…

Codeforces Round 974 (Div. 3)

拿小小号打的DIV3,中间看了会儿b站摸鱼,结果尼玛最后几点钟G没写完。。。A. Robin Helps 模拟题 int T, n, k;signed main(void) {for (read(T); T; T--) {read(n), read(k); int ans = 0; ll sum = 0;for (int i = 1; i <= n; i++) {int x; read(x);if (x >= k) sum +…

CSP-S 2024 初赛解析

时间紧任务重,可能有误,烦请指正 QwQ 题目内代码可能有些许错误,应该不大影响查看吧,这个难改就不改哩第1题 (2分) 在Linux系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?( ) A. pwd B. cd C. ls D. echopwd 可以显示当前的工作路径 cd 表示切换工作路径 l…