跳至頁尾內容
NODE 說明

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

在 Node.js 中,[minification](https://en.wikipedia.org/wiki/Minification_(programming) 是透過壓縮來減少檔案大小,以優化程式碼。 透過這個過程提升效能並縮短載入時間。 多餘的字元,如空白、註解和換行符號,會被消除。 變數名稱和函式名稱通常會縮短。Minification 移除不重要的預編譯程式碼,並減少文件大小,使 JavaScript、CSS 和 HTML 文件更有效並更快下載。 在本文中,我們將學習更多有關 Mimosa 及其與 IronPDF 模組的使用。

Mimosa 是一個幾乎九年前發佈的全功能 NPM 套件,透過強大的模組和功能擴展前端開發工作流程。 執行如 mimosa watch 和 build 等命令,以自動編譯您的程式碼,並開啟重新載入以便在瀏覽器中即時反映變更。 這個套件有一個設定檔,用於有效地自訂建置流程和處理相依性。 有關 Mimosa 的更多資訊,請參閱 NPM 文件

從首次發佈多年以來,Mimosa 一直在進步,這個新版本對預編譯和編譯的 JavaScript 文件支援得更加出色。 只需簡單的安裝、配置專案的 Mimosa 設定,並執行 mimosa watch 即可開始開發。 非常建議您參閱其詳細的文件,了解如何使用 Mimosa、其功能,以及如何設定專案的 Mimosa 配置,如果您需要進一步的細節。

mimosa NPM (開發者的工作原理): 圖 1 - Mimosa

它有模組化的架構,因此能輕鬆與各種插件和擴展整合,適應不同的工作流程和技術。 此外,Mimosa 的弹性配置支持任何多樣化的前端工具和架構,真正在現代網頁開發中成為一個資產。 總的來說,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

Config Mimosa

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 編譯系統的配置文件,配置了前端開發的多個面向。 一套模組使能 copy,進行檔案管理; server,設置本地開發伺服器; jshintcsslint,分別用於 JavaScript 和 CSS 文件的語法檢查; minify-jsminify-css,壓縮 JavaScript 和 CSS 文件以提高效能。

此外,它還具有由於程式碼變更而在瀏覽器刷新程式碼的實時重新載入以及處理前端相依性所需的 bower。 配置還確保視圖模板編譯為 .html 文件,以便在開發中適當處理 HTML 視圖。 結果是一個完整的配置,具有資產管理、源程式碼優化和工作流程的改進。

Start Mimosa Watch

最後,完成 Mimosa 設置後,啟動監視過程,任何時間檔案變更時將自動重新編譯:

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

它監視您的源文件,在需要時重新編譯,然後透過 LiveReload 快速刷新瀏覽器中的變更。

mimosa NPM (開發者的工作原理): 圖 2 - Watch Command

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

mimosa NPM (開發者的工作原理): 圖 3 - 編譯的輸出

介紹 IronPDF: 一個 PDF 建立工具

IronPDF for Node.js 可以解決多數與編程相關的 PDF 任務,如編輯現有的 PDFs 和將 HTML 轉換為 PDF。 IronPDF 提供了建立高品質 PDF 文件的靈活性和方便性,這在動態建立和管理 PDF 的應用程式中特別有用。

mimosa NPM (開發者的工作原理): 圖 4 - IronPDF

安裝 IronPDF 套件

安裝套件的最新版本,透過以下命令使用 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 生成 PDFs 的 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

用您實際的 IronPDF 許可證金鑰替換 'YOUR_LICENSE_KEY'

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

將 Mimosa 用於資產管理,將 IronPDF 用於在 Express.js 應用中生成 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 及錯誤消息。 否則,會嘗試生成 PDF,通過調用 generatePDF 並提供資料以建立 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 和其他資產的編譯、minification 和實時重新載入,確保您的網頁應用程式始終保持最新和響應迅速。這結合 IronPDF 所提供的強大可能性,將輕鬆地任何動態生成的 HTML 內容轉換為專業風格的 PDF。

這種結合通過自動化資產管理和文件生成來簡化開發工作流程,從而讓開發者有機會創作出高品質應用程式。 同時,Mimosa 和 IronPDF 聯手提供現代網頁應用程式一個全面的方法來管理網頁資產和生成可列印文件,提高效率和功能。 為了幫助您成為一名更好的程式設計師並滿足當代應用程式的要求,您也可以查看進一步的Iron Software 解決方案。

Darrius Serrant
全端軟體工程師(WebOps)

Darrius Serrant擁有邁阿密大學的電腦科學學士學位,並在Iron Software擔任全端WebOps行銷工程師。從小就對程式設計有興趣,他認為計算既神秘又易於理解,成為創意和問題解決的完美媒介。

在Iron Software,Darrius喜歡創造新事物並簡化複雜的概念,使其更易於理解。作為我們的常駐開發人員之一,他還志願教學,將他的專業知識傳授給下一代。

對Darrius來說,他的工作是有意義的,因為它有價值且對社會有真正的影響。

Iron 支援團隊

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