Home > Web Front-end > JS Tutorial > How to use pkg to package Node.js project into an executable file?

How to use pkg to package Node.js project into an executable file?

青灯夜游
Release: 2022-07-29 21:03:34
forward
3917 people have browsed it

How to package nodejs executable file with pkg? The following article will introduce to you how to use pkg to package the Node project into an executable file. I hope it will be helpful to you!

How to use pkg to package Node.js project into an executable file?

Node.js

##Node.js
  • Node.js

    ##Node.js

    ##Node.js

##Using pkg,

Node.js

project can be packaged as an executable file, which can even be run on devices without Node.js installed.

Experimental environment

Operating system: windows

node version : 16.14.2

Operation process

Download PKG

How to use pkg to package Node.js project into an executable file?

We can choose to install it globally and execute it in any directory:

$ npm install -g pkg
Copy after login

Packaging program


Write a simple program first , such as server.js content

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(3000, () => {
    console.log('Express web app on localhost:3000');
});
Copy after login
Enter the nodejs project root directory and execute the following command

$ pkg server.js
Copy after login
The first error is reported######An error will be reported at this time# ##
$ pkg server.js
> pkg@5.6.0
> Targets not specified. Assuming:
  node16-linux-x64, node16-macos-x64, node16-win-x64
> Fetching base Node.js binaries to PKG_CACHE_PATH
  fetched-v16.14.2-linux-x64          [                    ] 0%> Not found in remote cache:
  {"tag":"v3.3","name":"node-v16.14.2-linux-x64"}
> Building base binary from source:
  built-v16.14.2-linux-x64
> Error! Not able to build for 'linux' here, only for 'win'
Copy after login
###The general idea is that the current environment only supports executable files compiled into windows systems, that is, the win###### adjustment instructions are: ###
$ pkg -t win server.js
Copy after login
###where -t win is equivalent to-- targets win, which means only compiling files for windows. #########Second error report#########An error message was reported again during compilation: ###
$ pkg -t win server.js
> pkg@5.6.0
> Fetching base Node.js binaries to PKG_CACHE_PATH
  fetched-v16.14.2-win-x64            [                    ] 0%> Not found in remote cache:
  {"tag":"v3.3","name":"node-v16.14.2-win-x64"}
> Building base binary from source:
  built-v16.14.2-win-x64
> Fetching Node.js source archive from nodejs.org...
> Error! AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
Copy after login
###The main idea is that the corresponding binary file fetched-v16.14.2-win is missing from the cache -x64, we just need to download the corresponding file and put it in the corresponding cache directory. ######1. Go to the ### official website ### to download the corresponding version file. For example, mine is node-v16.14.2-win-x64######Official website address: https://github.com /vercel/pkg-fetch/releases###############2. Rename the file node-v16.14.2-win-x64 downloaded in the previous step to fetched-v16.14.2-win -x64, put it in the current user's cache directory. ######For example, my cache directory is ###C:\Users\MangoDowner.pkg-cache###. After splicing the fetch tag, it becomes the final directory. Refer to the information in the error report to get The tag is v3.3###
 {"tag":"v3.3","name":"node-v16.14.2-win-x64"}
Copy after login
###We can get the final parent directory as C:\Users\MangoDowner.pkg-cache\v3.3, ###So the final file address is C:\Users\MangoDowner .pkg-cache\v3.3\fetched-v16.14.2-win-x64######Compile again, success! ###
$ pkg -t win server.js
> pkg@5.6.0
Copy after login
###For more node-related knowledge, please visit: ###nodejs tutorial###! ###

The above is the detailed content of How to use pkg to package Node.js project into an executable file?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template