跳過到頁腳內容
NODE 說明

mimosa NPM(開發者的使用方法)

在Node.js中,[程式碼壓縮(minification](https://en.wikipedia.org/wiki/Minification_(programming) )是指透過壓縮來減少檔案大小,從而優化程式碼。 透過此過程,可以提高效能並縮短載入時間。 多餘的字符,例如空格、註釋和換行符,將被刪除。 變數名和函數名通常會被縮短。程式碼壓縮會移除不重要的預編譯程式碼,從而減少文件大小,使JavaScript、CSS 和 HTML 檔案更有效率,下載速度也更快。 在本文中,我們將進一步了解 Mimosa 及其與IronPDF模組的搭配使用。

Mimosa 是一個通用的 NPM 包,發佈於近九年前,它透過使用強大的模組和功能來擴展前端開發工作流程。 執行 mimosa watch 和 build 等命令,即可自動編譯程式碼並啟用重新加載,以便變更立即反映在瀏覽器中。 該軟體包具有用於高效自訂建置流程和處理依賴項的配置。 有關 Mimosa 的更多信息,請參閱NPM 文件

從幾年前的第一個版本開始,Mimosa 就不斷發展,這個新版本對預先編譯和已編譯的JavaScript檔案提供了更好的支援。 只需簡單安裝、配置專案的 Mimosa 設置,然後運行mimosa watch 即可開始開發。 強烈建議您查看其非常詳細的文檔,以了解如何使用 Mimosa、它的功能以及如何設定專案的 Mimosa 配置(如果您需要更詳細的資訊)。

mimosa NPM(開發者使用方法):圖 1 - Mimosa

它採用模組化架構,因此可以輕鬆整合各種插件和擴充程序,適應不同的工作流程和技術。 此外,Mimosa 的靈活配置支援各種前端工具和框架,這在現代 Web 開發中確實是一項優勢。 總體而言,Mimosa 是一個完整的解決方案,可以提高生產力並簡化開發過程。 它由一個強大的社區驅動,該社區隨著開發者需求的演變而不斷前進。

首先,請確保您的系統中已安裝Node.js和 NPM。 然後,在專案中全域或本地安裝 Mimosa:

# Install Mimosa globally
npm install -g mimosa
# Install Mimosa globally
npm install -g mimosa
SHELL

若要建立新的 Mimosa 項目,請在命令列中輸入以下程式碼。

# Create a new Mimosa project named Demoproject
mimosa new Demoproject
# Create a new Mimosa project named Demoproject
mimosa new Demoproject
SHELL

配置含羞草

exports.config = {
  "modules": [
    "copy",
    "server",
    "jshint",
    "csslint",
    "require",
    "minify-js",
    "minify-css",
    "live-reload",
    "bower"
  ],
  "server": {
    "views": {
      "compileWith": "html",
      "extension": "html"
    }
  }
}
exports.config = {
  "modules": [
    "copy",
    "server",
    "jshint",
    "csslint",
    "require",
    "minify-js",
    "minify-css",
    "live-reload",
    "bower"
  ],
  "server": {
    "views": {
      "compileWith": "html",
      "extension": "html"
    }
  }
}
JAVASCRIPT

mimosa-config.js 是 Mimosa 建置系統的配置文件,用於配置前端開發的幾個方面。 Suite模組支援 copy,用於文件管理; server,設定本機開發伺服器; jshintcsslint,分別用於JavaScript和 CSS 檔案的 linting; minify-jsminify-css,用於壓縮JavaScript和 CSS 檔案以提高效能。

此外,它還支援因程式碼更改而在瀏覽器刷新時即時重新加載,並使用 Bower 作為前端依賴項。 配置還可確保視圖範本已編譯為 .html 文件,以便在開發過程中正確處理 HTML 視圖。 最終實現了資產管理、原始碼優化和工作流程改進的完整配置。

開始觀看含羞草

最後,設定好 Mimosa 的各項參數後,啟動監視程序,它會在檔案發生變更時自動重新編譯檔案:

# Start the Mimosa watch process
mimosa watch
# Start the Mimosa watch process
mimosa watch
SHELL

它會監視你的原始文件,並在必要時重新編譯它們,然後透過 LiveReload 快速刷新瀏覽器中的變更。

mimosa NPM(開發者使用方法):圖 2 - 監視指令

以下是 Mimosa NPM 部署頁面的螢幕截圖。

mimosa NPM(開發者使用方法):圖 3 - 編譯輸出

隆重介紹IronPDF:一款 PDF 創建工具

IronPDF 適用於 Node.js可以解決大量基於程式設計的 PDF 任務,例如編輯現有 PDF 和將 HTML 轉換為 PDF。 IronPDF為創建高品質 PDF 文件提供了靈活性和便利性,這對於動態建立和管理 PDF 的應用程式尤其有用。

mimosa NPM(開發者使用方法):圖 4 - IronPDF

安裝IronPDF軟體包

使用Node.js包管理器,透過以下命令安裝最新版本的軟體包,以在Node.js中啟用IronPDF功能。

# Install IronPDF for Node.js
npm install @ironsoftware/ironpdf
# Install IronPDF for Node.js
npm install @ironsoftware/ironpdf
SHELL

使用IronPDF建立 PDF 生成腳本

下面是一個使用IronPDF產生 PDF 的Node.js腳本。 例如,建立 generatePdf.js:

const IronPdf = require('@ironsoftware/ironpdf');
const { PdfDocument } = IronPdf;

// Set IronPDF configuration
const config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: 'YOUR_LICENSE_KEY' }); // Replace with your actual license key

async function generatePDF(title, content) {
  try {
    // Generate PDF from HTML content
    const pdf = await PdfDocument.fromHtml(`<html><body><h1>${title}</h1><p>${content}</p></body></html>`);
    return await pdf.saveAsBuffer();
  } catch (error) {
    console.error('Error generating PDF:', error);
    throw error;
  }
}

module.exports = generatePDF;
const IronPdf = require('@ironsoftware/ironpdf');
const { PdfDocument } = IronPdf;

// Set IronPDF configuration
const config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: 'YOUR_LICENSE_KEY' }); // Replace with your actual license key

async function generatePDF(title, content) {
  try {
    // Generate PDF from HTML content
    const pdf = await PdfDocument.fromHtml(`<html><body><h1>${title}</h1><p>${content}</p></body></html>`);
    return await pdf.saveAsBuffer();
  } catch (error) {
    console.error('Error generating PDF:', error);
    throw error;
  }
}

module.exports = generatePDF;
JAVASCRIPT

請將 'YOUR_LICENSE_KEY' 替換為您的IronPDF實際許可證金鑰。

在 Express.js 應用中整合 Mimosa 和IronPDF

在 Express.js 應用程式中整合 Mimosa(用於資產管理)和IronPDF (用於生成 PDF):

const express = require('express');
const bodyParser = require('body-parser');
const generatePDF = require('./generatePdf'); // Import the PDF generation script

const app = express();

app.use(bodyParser.json());

// Serve assets managed by Mimosa
app.use(express.static('public'));

// Route to generate PDF
app.post('/generate-pdf', async (req, res) => {
  const { title, content } = req.body;
  if (!title || !content) {
    return res.status(400).json({ error: 'Title and content are required' });
  }
  try {
    // Generate PDF
    const pdfBuffer = await generatePDF(title, content);
    // Respond with the PDF
    res.set({
      'Content-Type': 'application/pdf',
      'Content-Disposition': 'attachment; filename="generated.pdf"'
    });
    res.send(pdfBuffer);
  } catch (error) {
    console.error('Error generating PDF:', error);
    res.status(500).json({ error: 'Failed to generate PDF' });
  }
});

// Start listening
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});
const express = require('express');
const bodyParser = require('body-parser');
const generatePDF = require('./generatePdf'); // Import the PDF generation script

const app = express();

app.use(bodyParser.json());

// Serve assets managed by Mimosa
app.use(express.static('public'));

// Route to generate PDF
app.post('/generate-pdf', async (req, res) => {
  const { title, content } = req.body;
  if (!title || !content) {
    return res.status(400).json({ error: 'Title and content are required' });
  }
  try {
    // Generate PDF
    const pdfBuffer = await generatePDF(title, content);
    // Respond with the PDF
    res.set({
      'Content-Type': 'application/pdf',
      'Content-Disposition': 'attachment; filename="generated.pdf"'
    });
    res.send(pdfBuffer);
  } catch (error) {
    console.error('Error generating PDF:', error);
    res.status(500).json({ error: 'Failed to generate PDF' });
  }
});

// Start listening
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});
JAVASCRIPT

定義一個路由,該路由使用 POST 方法處理 /generate-pdf 請求。從請求體中提取 titlecontent 字段,並驗證它們是否存在。如果缺少任何字段,則傳回狀態碼 400 並附帶錯誤訊息。 否則,它將嘗試透過呼叫 generatePDF 並提供資料來建立PDF來產生 PDF。

如果成功,這將建立一個回應頭,指示回應內容為 PDF 文件,並附加一個文件名以供下載。 然後它會將生成的 PDF 文件作為回應返回。 如果產生 PDF 失敗,它會記錄錯誤並以 500 狀態和錯誤訊息回應。

最後,它將監聽 3000 端口,並在控制台上登錄,顯示一條訊息,表明伺服器正在運行,可透過 http://localhost:3000 存取。 下面這張截圖顯示的是使用 Postman 工具從 Mimosa 模組產生的 PDF 檔案。

mimosa NPM(開發者使用方法):圖 5 - PDF 輸出

IronPDF的許可

上述程式碼需要許可證密鑰才能在不顯示浮水印的情況下運作。 在此註冊的開發者將獲得試用許可證。 您可以透過提供電子郵件地址來註冊此免費試用版。

結論

與 Mimosa 和IronPDF 的集成為前端資產管理提供了一個無縫的解決方案,PDF 生成在Node.js環境中實現。 Mimosa 可以有效率地完成 CSS、 JavaScript和其他資源的編譯、壓縮和即時重載,確保您的 Web 應用程式始終保持最新狀態並具有回應性。此外, IronPDF還提供了強大的 PDF 文件創建功能,可以輕鬆地將任何動態生成的 HTML 內容轉換為專業樣式的 PDF 文件。

該組合透過自動化資產管理和文件生成,簡化了開發工作流程,從而使開發人員有機會開發出高品質的應用程式。 同時,Mimosa 和IronPDF強強聯手,為現代 Web 應用程式提供管理 Web 資產和產生可列印文件的一體化方法,從而提高效率和功能。 為了幫助您成為更優秀的程式設計師,並滿足現代應用程式的要求,您也可以了解Iron Software 的其他解決方案。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我