簡體   English   中英

使用 pkg 將帶有 native-node-printer 的 Node.js 項目打包成可執行文件

[英]Packaging Node.js project with native-node-printer into an executable using pkg

我有一個節點項目,當嘗試使用 pkg 模塊打包它時,它使用帶有 edge-js 模塊的模塊 native-node-printer(用於 Windows 平台),它給出了這個錯誤:

警告無法解析 ' ../../${ process.env.NNP_PACKAGE } ' C:\\VisualSutdioCode\\ticketing-2019\\pkg\\print-scan-server\\node_modules\\node-native-printer\\src\\windows_printer.js 動態require 可能會在運行時失敗,因為請求的文件在編譯時未知且未包含在可執行文件中。 使用字符串文字作為 'require' 的參數,或保持原樣並在 'scripts' 選項中指定解析的文件名。

edge-js 在 native-node-printer 中被引用。

任何人都可以幫助我嗎?

此致,

編輯“node_modules\\node-native-printer\\src\\windows_printer.js”如下

// const edge = require(`../../${process.env.NNP_PACKAGE}`); 
const edge = require(`edge-js`);

// const dllPath = fs.realpathSync(__dirname + '/../lib/windows/windows_printer.dll').replace('.asar', '.asar.unpacked');
const dllPath = fs.realpathSync(process.cwd() + '/lib/windows/windows_printer.dll').replace('.asar', '.asar.unpacked');

使用 pkg 打包應用程序后,將 node_modules/node-native-printer/lib 文件夾復制到您的應用程序根目錄。 您的目錄結構應如下所示

  • 應用程序
  • 庫/

如果你不更新 dllPath 你可能會得到一個類似於下面的錯誤

Error: Could not load file or assembly 'file:///E:\snapshot\print-server\node_modules\node-native-printer\lib\windows\windows_printer.dll' or one of its dependencies. The system cannot find the file specified.
    at Object.func (E:\snapshot\print-server\node_modules\edge-js\lib\edge.js:182:17)
    at WinPrinter.listPrinters (E:\snapshot\print-server\node_modules\node-native-printer\src\windows_printer.js:24:19)
    at E:\snapshot\print-server\app.js:9:13
    at Layer.handle [as handle_request] (E:\snapshot\print-server\node_modules\express\lib\router\layer.js:95:5)
    at next (E:\snapshot\print-server\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (E:\snapshot\print-server\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (E:\snapshot\print-server\node_modules\express\lib\router\layer.js:95:5)
    at E:\snapshot\print-server\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (E:\snapshot\print-server\node_modules\express\lib\router\index.js:335:12)
    at next (E:\snapshot\print-server\node_modules\express\lib\router\index.js:275:10)
^Cnpm ERR! code ELIFECYCLE
npm ERR! errno 3221225786
npm ERR! print-server@1.0.0 start: `node app.js`
npm ERR! Exit status 3221225786
npm ERR!
npm ERR! Failed at the print-server@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM