我的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
瀏覽:477

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]刪除
最新教學 更多>
  • JavaScript計算兩個日期之間天數的方法
    JavaScript計算兩個日期之間天數的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    程式設計 發佈於2025-04-18
  • 在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8表中將latin1字符轉換為utf8 ,您遇到了一個問題,其中含義的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致電。為了解決此問題,您正在嘗試使用“ mb_convert_encoding”和“ iconv”轉換受...
    程式設計 發佈於2025-04-18
  • Python元類工作原理及類創建與定制
    Python元類工作原理及類創建與定制
    python中的metaclasses是什麼? Metaclasses負責在Python中創建類對象。就像類創建實例一樣,元類也創建類。他們提供了對類創建過程的控制層,允許自定義類行為和屬性。 在Python中理解類作為對象的概念,類是描述用於創建新實例或對象的藍圖的對象。這意味著類本身是使用...
    程式設計 發佈於2025-04-18
  • Go web應用何時關閉數據庫連接?
    Go web應用何時關閉數據庫連接?
    在GO Web Applications中管理數據庫連接很少,考慮以下簡化的web應用程序代碼:出現的問題:何時應在DB連接上調用Close()方法? ,該特定方案將自動關閉程序時,該程序將在EXITS EXITS EXITS出現時自動關閉。但是,其他考慮因素可能保證手動處理。 選項1:隱式關閉終...
    程式設計 發佈於2025-04-18
  • 如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    程式設計 發佈於2025-04-18
  • PHP生成安全隨機字母數字字符串方法
    PHP生成安全隨機字母數字字符串方法
    在各種應用程序中生成隨機的,唯一的字母數字字符串 ,例如帳戶驗證鏈接,對於生成數字和字母組成的唯一和隨機字符串至關重要。這是您可以在PHP中實現這一目標的方法: php 7 這將產生類似的輸出:bin2hex(openssl_random_pseudo_bytes($bytes))More Sec...
    程式設計 發佈於2025-04-18
  • 如何有效地選擇熊貓數據框中的列?
    如何有效地選擇熊貓數據框中的列?
    在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
    程式設計 發佈於2025-04-18
  • Python與Excel動態風險更新技巧
    Python與Excel動態風險更新技巧
    [2 使用Python和Excel的動態風險更新” 在此博客中,我們將使用一個簡單的Ansible Server Update腳本,並將其轉變為基於風險的更新系統。在這裡,風險最低的服務器首先要修補,使我們有機會在進行更高優先級系統之前進行徹底測試。 Ansible自動化: 使用Py...
    程式設計 發佈於2025-04-18
  • Daytona助我優化開發流程
    Daytona助我優化開發流程
    作为开发人员,从事需要平稳开发环境,跨机器的一致性以及快速设置时间的项目,我被介绍给 1。简化的项目设置和依赖项 在[, node.js 的正确版本,并且所有特定于项目的依赖项都可以花费小时。 Daytona通过提供 customizable devcontainer 设置来解决此...
    程式設計 發佈於2025-04-18
  • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在細胞編輯後,如何維護自定義的JTable細胞渲染?
    在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
    程式設計 發佈於2025-04-18
  • CSS強類型語言解析
    CSS強類型語言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    程式設計 發佈於2025-04-18
  • 大批
    大批
    [2 數組是對象,因此它們在JS中也具有方法。 切片(開始):在新數組中提取部分數組,而無需突變原始數組。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    程式設計 發佈於2025-04-18
  • 如何處理PHP文件系統功能中的UTF-8文件名?
    如何處理PHP文件系統功能中的UTF-8文件名?
    在PHP的Filesystem functions中處理UTF-8 FileNames 在使用PHP的MKDIR函數中含有UTF-8字符的文件很多flusf-8字符時,您可能會在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    程式設計 發佈於2025-04-18
  • 在Java中使用for-to-loop和迭代器進行收集遍歷之間是否存在性能差異?
    在Java中使用for-to-loop和迭代器進行收集遍歷之間是否存在性能差異?
    For Each Loop vs. Iterator: Efficiency in Collection TraversalIntroductionWhen traversing a collection in Java, the choice arises between using a for-...
    程式設計 發佈於2025-04-18
  • 可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    [2这里: https://webthemez.com/demo/sticky-multi-header-scroll/index.html </main> <section> { display:grid; grid-template-...
    程式設計 發佈於2025-04-18

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3