我的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。

在我的 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 中的文件添加到我们的导入映射中

我获取了指向我的 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,了解它们是如何工作的。

","image":"http://www.luping.net/uploads/20241003/172792980566fe1dcd107d6.jpg","datePublished":"2024-11-01T00:21:15+08:00","dateModified":"2024-11-01T00:21:15+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 WordPress 网站中使用 Importmap

如何在 WordPress 网站中使用 Importmap

发布于2024-11-01
浏览:697

How to Use Importmap in a WordPress Website

我一直在尝试开发一个基本的 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 );

这将输出到前端的以下脚本标记。

我的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 中导入这两个文件时它的样子。

// Utils
import { onDocumentReady } from './utils/index.js';
// Components
import Menu from './components/menu.js';

但是我想要的是像这样导入文件。

// Utils
import { onDocumentReady } from 'utils/index.js';
// Components
import 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。

在我的 app.js 中使用它

现在有了 importmap 设置,即使这不是 Node 环境,我们仍然可以在我们熟悉的结构下导入文件。请记住,文件需要以 .js 结尾。

// Utils
import { onDocumentReady } from 'utils/index.js';
// Components
import 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 中的文件添加到我们的导入映射中

我获取了指向我的 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,了解它们是如何工作的。

版本声明 本文转载于:https://dev.to/heybran/how-to-use-importmap-in-a-wordpress-website-1cnd?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何有效地检查 Python 字符串中是否存在列表元素?
    如何有效地检查 Python 字符串中是否存在列表元素?
    检查 Python 中字符串中列表元素的存在Python 编程中的一个常见任务是验证字符串是否包含给定的元素列表。传统方法采用 for 循环,如下面的代码所示:extensionsToCheck = ['.pdf', '.doc', '.xls'] for extension in extensio...
    编程 发布于2024-11-08
  • \'window.JSON\' 如何在现代浏览器中提供本机 JSON 支持?
    \'window.JSON\' 如何在现代浏览器中提供本机 JSON 支持?
    浏览器原生 JSON 支持:window.JSON 对象window.JSON 对象为现代 Web 浏览器提供原生 JSON 解析和序列化功能,实现结构化数据的高效、安全处理。本文探讨了该对象的详细信息,包括其支持的方法和浏览器兼容性。window.JSON 公开的方法window.JSON 对象公...
    编程 发布于2024-11-08
  • Java 中的接口继承自对象类吗?
    Java 中的接口继承自对象类吗?
    接口和对象类:继承和方法调用在 Java 中,接口提供了一种定义类可以实现的契约的方法。在考虑接口和Object类的关系时,就提出了继承的问题。接口是否继承自Object类?答案是否。接口不继承自Object 类。与类不同,所有接口都不会隐式继承任何公共根接口。接口实例上的方法调用尽管不是从 Obj...
    编程 发布于2024-11-08
  • Python:有趣的代码模式
    Python:有趣的代码模式
    我主要使用 Python 工作,几乎每天都会检查代码。在我们的代码库中,格式化和 linting 由 CI 作业使用 black 和 mypy 处理。因此,我们只关注变化。 在团队中工作时,您已经知道某个团队成员会编写什么样的代码。当新人加入团队时,代码审查会变得有趣。我说有趣,是因为每个人都有一些...
    编程 发布于2024-11-08
  • 在 Laravel 中使用 Redis 进行缓存:分步指南
    在 Laravel 中使用 Redis 进行缓存:分步指南
    Introduction Laravel is, without fear of contradiction, the most popular PHP framework, and among the most popular within web development. Re...
    编程 发布于2024-11-08
  • 释放实时 UI 的力量:使用 React.js、gRPC、Envoy 和 Golang 流式传输数据的初学者指南
    释放实时 UI 的力量:使用 React.js、gRPC、Envoy 和 Golang 流式传输数据的初学者指南
    作者:Naveen M 背景 作为 Kubernetes 平台团队的一部分,我们面临着提供用户工作负载实时可见性的持续挑战。从监控资源使用情况到跟踪 Kubernetes 集群活动和应用程序状态,每个特定类别都有许多开源解决方案。然而,这些工具往往分散在不同的平台上,导致用户体验支离...
    编程 发布于2024-11-08
  • 构建您自己的操作系统(真的!):初学者 C 编程
    构建您自己的操作系统(真的!):初学者 C 编程
    建立自己的操作系统:安装 C 编译器和工具,如 MinGW-w64。使用汇编语言编写引导加载程序,加载内核。用 C 语言创建内核,包括命令解释器。使用 Makefile 将引导加载程序和内核组合为“os.img”文件。在 VirtualBox 等虚拟机或硬件上运行“os.img”文件。创建自己的操作...
    编程 发布于2024-11-08
  • 如何在 C++ 中复制 Python 的startswith() 和子字符串到整数功能?
    如何在 C++ 中复制 Python 的startswith() 和子字符串到整数功能?
    在 C 中检查前缀字符串是否存在并将子字符串转换为整数 用户寻求有关实现 Python 字符串前缀检查和子字符串转换的指导在 C .具体来说,他们的目标是实现Python的startswith()方法以及子字符串转换为整数的功能。检查前缀字符串是否存在检查C字符串是否开始使用特定前缀,利用搜索位置为...
    编程 发布于2024-11-08
  • 如何防止 Matplotlib 可视化中出现重叠注释?
    如何防止 Matplotlib 可视化中出现重叠注释?
    Matplotlib 中的重叠注释Matplotlib 可视化经常遇到重叠注释的问题,导致图表混乱且难以解释。本文提供了一个全面的解决方案来应对这一挑战。Herausforderung当多个注释共享同一屏幕空间时,就会出现重叠注释,从而造成视觉混乱。在提供的代码中,数据点的注释文本往往会重叠,尤其是...
    编程 发布于2024-11-08
  • 如何提高数据库性能?主要发动机基本资源指南
    如何提高数据库性能?主要发动机基本资源指南
    数据库性能调优基本指南资源数据库性能调优对于优化任何数据库应用程序的效率和响应能力至关重要。为了帮助您提高该领域的知识,这里提供了涵盖主要数据库引擎的可信资源的综合列表:General SQL书籍:SQL 性能调优SQL 调优SQL 的艺术重构 SQL 应用程序数据库调优:原理、实验和故障排除技术在...
    编程 发布于2024-11-08
  • Franken UI:强大的 HTML-First UI 组件库
    Franken UI:强大的 HTML-First UI 组件库
    Franken UI 是一个开源库,提供了一整套 UI 组件,设计为 HTML 优先和 Tailwind CSS 友好。无论您是构建简单的网页还是复杂的应用程序,Franken UI 都提供了一个多功能工具包,可以与您现有的项目无缝集成。从卡片和表单到导航和实用程序,Franken UI 确保整个应...
    编程 发布于2024-11-08
  • 如何在 Python 和 JavaScript 之间序列化和反序列化 JSON 中的日期时间对象
    如何在 Python 和 JavaScript 之间序列化和反序列化 JSON 中的日期时间对象
    在 Python 和 JavaScript 之间处理 JSON 中的日期时间对象在 Python 和 JavaScript 之间交换数据时,经常会遇到日期时间对象。为了确保这些对象的无缝序列化和反序列化,可以采用各种方法。一种推荐的方法是利用 Python 中 json.dumps 的“默认”参数来...
    编程 发布于2024-11-08
  • 如何在 JavaScript 中创建元素重复多次的数组?
    如何在 JavaScript 中创建元素重复多次的数组?
    创建元素重复多次的数组在 JavaScript 中,创建元素重复多次的数组可以通过多种方法实现。一种简单的方法是利用 for 循环并将元素增量附加到数组中:var repeatelem = function(elem, n) { var arr = []; for (var i = 0; i...
    编程 发布于2024-11-08
  • 创建对外部存储库的拉取请求
    创建对外部存储库的拉取请求
    本周的重点是实验 2,其中涉及通过创建拉取请求 (PR) 为我不拥有的存储库做出贡献。我首先选择一个同学的存储库来进行工作。鉴于 JavaScript 是我的主要编程语言,我选择了基于 JavaScript 的存储库来简化我的工作流程。虽然我愿意探索其他语言,但我选择 JS 项目节省了时间,让我可以...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3