基于node打包可执行文件工具_Pkg使用心得分享

 更新时间:2018年01月24日 08:42:57   作者:mordom  
下面小编就为大家分享一篇基于node打包可执行文件工具_Pkg使用心得分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

项目地址

这个项目很神奇,直接将node.js项目打包成windows可以直接执行的exe文件(也支持FreeBSD、linux、macos、arm系统),甚至不需要安装Node.js,且无须修改你项目中的任何代码!

首先安装pkg

npm install -g pkg

然后在项目目录下执行

pkg entrance.js

即可打包linux,macos,win3个平台的可执行文件。entrance.js为你node项目的入口文件。

如果只想打包windows下的exe,则加上-t参数。win即为打包成windows平台下的exe文件,具体可选参数参见项目目录

pkg -t win entrance.js

稍等片刻后项目目录下就会生成打包好的entrance.exe文件。

pkg会自动从入口文件开始查找依赖的文件并全数打包进去,无须修改项目里的任何代码。

其他

pkg可以根据package.json下的配置进行打包,默认入口文件为bin指向的文件。
执行
pkg .

或是

pkg package.json

即可自动按照package.json的配置打包。

//package.json
{
 //其他配置项
 "bin": "service.js",//入口文件
 "pkg": {
 "scripts": [
  "build/**/*.js"//需要打包进来的其他js文件,可添加多个
 ],
 "assets": [
  "dist/**/*"//静态文件的目录,可添加多个
 ]
 }
}

注意:静态文件需要在项目中将文件的引用换成

path.join(__dirname, 'dist')

的形式,才可以正常打包,否则可能会读取不到。

示例

使用vue-cli建立项目,并使用npm run build将你的项目编译生成静态文件到dist目录下。这些都是vue-cli自带的内容,不再赘述。

在项目目录下新建一个service.js文件,并添加以下代码,在本地起一个express静态服务器,使你能够在本地访问你的网站(部署到线上也是类似)

//service.js
const express = require('express');
const app = express();
const path = require('path');
 
app.use(express.static(path.join(__dirname, 'dist')));//注意这里使用path.join(__dirname, 'dist')而不是'dist',虽然在命令行中执行起来效果是一样的,不过pkg打包会无法识别到dist目录
 
var server = app.listen(8081, function () {
 var host = server.address().address
 var port = server.address().port
 console.log(`AIbuy agents server start successfully on http://${host}:${port}`)
})

此时你可以在控制台执行

node service.js

来启动你的服务器了,启动完成后,浏览器访问http://localhost:8081/即可查看你的网站。

接下来我们使用将service.js和dist目录打包成一个exe文件,方便他人使用

首先安装pkg

npm install -g pkg

然后修改package.json,添加bin(如果不是service.js的话)和pkg项

{
 //其他配置项
 "bin": "service.js",//指定入口文件
 "pkg": {
 "assets": [
  "dist/**/*"//指定要打包的静态文件目录
 ]
 }
}

然后在项目目录下执行

pkg -t win package.json

完成后即生成一个exe文件,双击启动即相当于执行node service.js,然后你浏览器里(http://localhost:8081/)就能访问打包好的项目了!也不需要提前安装node,给老板演示很方便有木有!

以上这篇基于node打包可执行文件工具_Pkg使用心得分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • node.js 抓取代理ip实例代码

    node.js 抓取代理ip实例代码

    这篇文章主要介绍了node.js 抓取代理ip实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • npm does not support Node.js问题的解决办法

    npm does not support Node.js问题的解决办法

    这篇文章主要给大家介绍了关于npm does not support Node.js问题的解决办法,文中通过代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • node-sass是干什么用的

    node-sass是干什么用的

    node-sass是一个项目依赖,在一个项目中在使用sass语法的时候,必须通过sass-loader来解析sass,从而使sass语法变成浏览器能够识别的CSS语法,下面介绍node-sass是什么,一起看看吧
    2023-08-08
  • nvm管理node版本的详细图文教程

    nvm管理node版本的详细图文教程

    nvm全英文也叫node.js version management,是一个nodejs的版本管理工具,下面这篇文章主要给大家介绍了关于nvm管理node版本的详细图文教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 基于Koa(nodejs框架)对json文件进行增删改查的示例代码

    基于Koa(nodejs框架)对json文件进行增删改查的示例代码

    这篇文章主要介绍了基于Koa(nodejs框架)对json文件进行增删改查的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • 详解Node.js开发中的express-session

    详解Node.js开发中的express-session

    express-session 是基于express框专门用于处理session的中间件,本篇文章主要介绍了详解Node.js开发中的express-session,有兴趣的可以了解一下
    2017-05-05
  • Node层模拟实现multipart表单的文件上传示例

    Node层模拟实现multipart表单的文件上传示例

    下面小编就为大家分享一篇Node层模拟实现multipart表单的文件上传示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Nodejs中的require函数的具体使用方法

    Nodejs中的require函数的具体使用方法

    这篇文章主要介绍了Nodejs中的require函数的具体使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 浅析Node在构建超媒体API中的作用

    浅析Node在构建超媒体API中的作用

    超媒体即Hypermedia,是一种采用非线性网状结构对块状多媒体信息(包括文本、图像、视频等)进行组织和管理的技术。超媒体的概念类似于早期的超文本,超文本的本质是在文本内容加上链接,这样就构成了超文本。超媒体也类似。
    2014-07-07
  • Node.js实现用户评论社区功能(体验前后端开发的乐趣)

    Node.js实现用户评论社区功能(体验前后端开发的乐趣)

    这篇文章主要介绍了Node.js实现用户评论社区(体验前后端开发的乐趣) ,需要的朋友可以参考下
    2019-05-05

最新评论