打包VSCode源码为安装程序(.exe)

2023-05-16

参考博客

  • GitHub-vscode里的Packaging部分:https://github.com/microsoft/vscode/wiki/How-to-Contribute 这里提供了vscode打包后可以发布的平台代码:
win32-ia32win32-x64darwin-x64darwin-arm64linux-ia32linux-x64linux-arm

基础打包命令:yarn gulp vscode-linux-x64,不同平台替换平台代码即可。

  • 解决报错digital envelope routines::unsupported:https://blog.csdn.net/itopit/article/details/127280592

前期准备

  • gulp:前端自动化打包构建工具,基于流格式的打包构建工具
    使用如下命令可以查看gulp所能执行的任务:
    gulp --tasks
    

vscode源码打包为exe文件

打包vscode只需要一行命令即可,但是在初次执行时报错,解决报错花费2个小时。

进入vscode源码文件夹下,在命令行中执行

yarn gulp vscode-win32-x64

或者执行

yarn gulp vscode-win32-x64-min

上述两种方式都可以打包vscode源码,带min参数后会对文件进行压缩。实际测试两种打包方式产生的文件所占用空间:

不带min参数带min参数
338MB309MB

初次运行上述代码打包vscode源码时报错:digital envelope routines::unsupported。报错原因是新版本node.js中的OpenSSL3.0对允许算法和密钥大小增加了严格的限制。

查看node.js版本:node --version,显示:v18.14.0

报错解决方式:
  1. 修改package.json文件
    打开vscode源码文件夹下的package.json文件,在"scripts":标签开头添加:
"serve": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",
"build": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build",
"build:report": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build --report",

添加后"scripts":标签下内容如下(下面还有很多,没有都复制过来):

  "scripts": {
    "serve": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",
    "build": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build",
    "build:report": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build --report",
    "test": "echo Please run any of the test scripts from the scripts folder.",
    "test-browser": "npx playwright install && node test/unit/browser/index.js",
    "test-browser-no-install": "node test/unit/browser/index.js",
  1. 添加环境变量
    在系统变量里添加环境变量:
变量名(N)变量值(V)
NODE_OPTIONS–openssl-legacy-provider

添加环境变量后,重启电脑,重新执行yarn gulp vscode-win32-x64即可,打包后的文件夹出现在vscode同级目录中。

打包后是一个文件夹,进入文件夹有一个Code - OSS.exe,双击此文件即可运行出VSCode。【绿色免安装式的软件】

将VSCode打包为可安装文件(非绿色免安装式)

这里在官网上没有找到介绍,根据gulp --tasks命令尝试得到的结果。

在上述步骤的基础上(已生成VSCode绿色免安装版),将VSCode打包为可安装文件。
进入vscode源码文件夹下,执行如下代码创建VSCode升级更新程序。

yarn gulp vscode-win32-x64-inno-updater

接着,执行如下代码,创建可安装文件:

yarn gulp vscode-win32-x64-user-setup

执行完毕会在vscode源码文件夹\.build\win32-x64\user-setup目录下出现VSCodeSetup.exe安装文件,双击即可安装。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打包VSCode源码为安装程序(.exe) 的相关文章

  • 运行使用 folium 的可执行文件时,Branca Python 模块无法找到 2 个必要的 json 文件

    有可能这仍然是一个问题 Pyinstaller 和 或 Folium 人员没有兴趣修复它 但我会在这里再次发布它 以防有人发现解决方法 我有一个程序可以创建地图 地理编码等 最近添加了 folium 包来创建一些 html 格式的交互式地图
  • VSCode中如何查看EDI报文?

    VSCode是开发人员常用的一款软件 为了降低EDI报文的阅读门槛 知行的开发人员设计了EDI插件 可以在VSCode中下载使用 如何打开一个EDI报文 VSCode EDI插件介绍 EDI插件下载流程 进入VSCode 打开Extensi
  • 使用 jar 文件和资源创​​建 exe

    有没有办法创建一个包含资源文件夹的 exe 文件 我正在寻找类似 mac 的应用程序捆绑包之类的东西 我还希望能够写入和读取资源文件夹中的文件 如果您使用其中的资源构建 jar 那么您可以使用launch4j http launch4j s
  • VScode配置mingw C语言环境变量

    C语言IDE VScode VScode是个人比较喜欢的一款IDE软件 鄙人曾同时在VScode软件中运行三个终端 开发Python Golang和C语言 下载地址如下 code visualstudio com VScode配置mingw
  • PAR::Packer 如何工作?

    我正在使用 PAR Packer 这个问题突然出现在我的脑海中 PAR Packer 在 Perl 中如何工作 真的吗compilePerl 脚本到 exe 就像 g 将 C 源代码编译到 exe 一样 还是像 Python 中的 py2e
  • 对于 Windows exe/二进制文件,证书、签名和指纹之间有什么区别?

    我试图了解 Windows 可执行文件和二进制文件上下文中签名 指纹和证书之间的区别 在发布这个问题之前我在互联网上查了一下 但我没有得到简明的区分 也许我对这三个术语的理解一开始就不清楚 有人可以帮我解决这个问题吗 A 证书是通常使用 X
  • 无法通过c#.net下载exe文件

    我设计了一个网站 当我单击按钮时 应该从我的计算机的特定路径下载 EXE 文件 但它不是下载 exe 文件 而是下载网站的 aspx 页面 我使用以下代码 WebClient myWebClient new WebClient Concat
  • Pyinstaller-python exe 停止工作:“无法打开自身”

    我一直在使用 Pyinstaller 将 python 脚本转换为可执行文件 过去它对我来说效果很好 但是现在 当我尝试运行可执行文件 旧的和新的 时 出现错误 无法打开自身 或存档 其中第一个空白是可执行文件的路径 第二个空白是存档的路径
  • 如何在未安装 python 的系统上执行嵌入了 python 代码的 C++ 代码

    我正在尝试使用 C 和 Python 嵌入创建一个简单的游戏 python 代码嵌入在我的 C 代码中 我为此使用了 Python C API 我想实现两个目标 1 应用程序应该能够在没有安装Python的计算机上运行 2 应用程序应该是一
  • 将 EXE 输出写入批处理文件

    我有一个 EXE 其输出值为 0 1 EXE 将通过批处理文件调用 我想要批处理文件运行 EXE 并写入获得的输出 这怎么可能 任何帮助 将不胜感激 我假设您想要捕获 EXECUTIVE 的输出并处理该值 而不是仅仅打印该值 以下是如何捕获
  • 如何执行另一个php脚本?

    如何执行另一个 php 脚本 我想从我的 php 文件执行 3 个 php 脚本 而不需要等待 3 个脚本完成 换句话说 这 3 个 php 文件需要同时执行 并行 而不是一个接一个 顺序 执行 这 3 个脚本位于我的主 php 文件 脚本
  • 从 Win7 启动位于 NW 驱动器上的 C# exe 时出现“错误 26 - 定位服务器错误”; SQL数据库

    我有几个 C 程序使用LINQ to SQL 类 如果我将 exe 文件放在网络驱动器并从那里处决他们 我得到 error 26 但只有当我在Win7上这样做时 一步步 创建一个新的C 项目 我在XP机器上使用VS 2010 Premium
  • JavaFX 单实例应用程序

    尝试做到这一点 当用户 关闭 程序时单击所有退出按钮 这样就不再有托盘图标 我调用 Platform setImplicitExit false 所以程序仍然在后台运行 我正在尝试学习如何做到这一点 以便当用户重新单击运行 jar 的 ex
  • 使用pyinstaller时找不到脚本

    我正在尝试将 python 脚本转换为 exe 文件 我已将 python 脚本与 pyinstaller 一起添加到文件夹中 并在 CMD 中使用正确的 PATH C Users ola nordmann AppData Local Pa
  • 将数据附加到 exe

    这个问题是我之前问题的答案之一的延伸 如何在exe中保存用户注册 C https stackoverflow com questions 5792793 how to save user registration in the exe c
  • 将清单嵌入到 exe 文件中

    我有一个 manifest链接到的文件 exe程序文件 以便在打开时要求管理员权限 现在它是一个单独的文件 名为program name exe manifest这是与以下相同的文件夹program name exe 有什么方法可以将清单文
  • DirectX Release 构建可以通过 VS2010 运行,但不能运行 exe

    我已经通过 Google 访问 Stack Overflow 几年了 但到目前为止还没有询问 回答任何问题 所以就到这里吧 基本上 我有一个在 DirectX 11 中设置绘图模型和地形的 3D 渲染框架 一切正常 通过 Visual St
  • 将 Typescript 项目打包为可执行文件

    如何将 Typescript 项目打包成可执行文件 由于我找了一段时间没有找到 所以我使用了 now 节点来实现上述目的 我正在发布我所做的事情 希望有人会觉得它有用 将Typescript项目编译成node 根据this https me
  • 构建 jar 后无法运行 exe

    我制作了一个简单的实用应用程序 其中我有一个要运行的exe文件 我通过使用它来运行 Runtime getRuntime exec this getClass getResource filename exe getPath 当我从 ide
  • 应用程序运行时替换exe文件[重复]

    这个问题在这里已经有答案了 我有一个简单的问题 是否可以在 exe 文件 应用程序文件 运行时替换它 我的意思是我知道当应用程序运行时我不能这样做 但也许可以做类似的事情 执行 application shutdown 替换旧的Exe gt

随机推荐

  • java基础正则表达式(验证手机号码,验证电话号码等)

    1 验证用户名和密码 xff0c 第一个字必须为字母 xff0c 一共6 16位字母数字下划线组成 xff1a xff08 34 1 w 5 15 34 xff09 2 验证电话号码 xff1a xff08 34 d 3 4 d 7 8 3
  • 九、大数据技术之Hive

    一 Hive基本概念 1 1 什么是Hive 1 xff09 hive简介 Hive xff1a 由Facebook开源用于解决海量结构化日志的数据统计工具 Hive是基于Hadoop的一个数据仓库工具 xff0c 可以将结构化的数据文件映
  • nacos2.2启动命令mysql版本

    docker run d p 8848 8848 p 7848 7848 p 9848 9848 p 9849 9849 e MODE 61 standalone e PREFER HOST MODE 61 hostname e SPRIN
  • 一、Redis入门概述(是什么,能干嘛,去哪下,怎么玩)

    一 redis是什么 xff1f Redis REmote Dictionary Server 远程字典服务器 官方解释 xff1a Remote Dictionary Server 远程字典服务 是完全开源的 xff0c 使用ANSIC语
  • 二、Redis安装配置(云服务器、vmware本地虚拟机)

    一 自己购买服务器 自己购买阿里云 青牛云 腾讯云或华为云服务器 xff0c 自带CentoOS或者Ubuntu环境 xff0c 直接开干 二 Vmware本地虚拟机安装 1 VMWare虚拟机的安装 xff0c 不讲解 xff0c 默认懂
  • 【MySQL基础】数据类型

    文章目录 整数类型浮点类型定点数类型日期和时间类型字符串类型文本类型二进制字符串类型JSON 类型位类型ENUM类型SET类型空间类型 整数类型 整数类型一共有 5 种 xff0c 包括 TINYINT SMALLINT MEDIUMINT
  • ubuntu16.04备份和迁移

    ubuntu16 04备份和迁移 背景实践1 备份整个系统2 重装Ubuntu16 043 恢复系统 题外话 xff1a 修改主机名参考文章 背景 此文用来快速记录备份和恢复的过程步骤 xff0c 具体命令意思不做过多介绍 因为不想新设备重
  • c++20协程基础概念

    c 43 43 协程介绍 前言 官方文档地址 本文主要对c 43 43 reference做翻译 不会逐字翻译 xff0c 同时对其中的概念以及协程运行过程做对应的解释 因为是学习过程中的记录 xff0c 如有问题 xff0c 希望大家能够
  • Flask 与 Django 框架对比

    详细分析了两种 Python Web框架 xff1a Flask 与 Django 从开发难易度 应用架构 性能 可扩展性以及适用范围等方面进行了详细说明 Django 中级教程在 B 站上线 xff0c 深入解析 Django 体系架构
  • STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程 xff08 HAL库 xff09 开发环境配置STM32F103C8T6基础开发教程 xff08 HAL库 xff09 Keil添加注释的快捷键STM32F
  • C++实现插入排序算法(直接插入排序、折半插入排序、希尔排序)

    排序算法分为五大类 xff0c 一共是有九种 xff0c 如下 xff1a 插入类 xff1a 直接插入排序 折半插入排序 希尔排序 交换类 xff1a 冒泡排序 快速排序 选择类 xff1a 简单选择排序 堆排序 归并类 xff1a 二路
  • C++实现二路归并排序算法

    排序算法分为五大类 xff0c 一共是有九种 xff0c 如下 xff1a 插入类 xff1a 直接插入排序 折半插入排序 希尔排序 交换类 xff1a 冒泡排序 快速排序 选择类 xff1a 简单选择排序 堆排序 归并类 xff1a 二路
  • C语言实现-学生信息管理系统

    通过C语言实现一个学生信息管理系统 xff0c 要求如下 xff1a xff08 1 xff09 用户采用自己账号和密码登录系统 xff1b xff08 2 xff09 学生信息和账号密码通过文件的形式存储 xff1b xff08 3 xf
  • 通过python画矢量图(matplotlib,有代码)

    python画矢量图 xff08 有代码 xff09 python的matplotlib可以保存的文件格式word可以插入哪些图片格式呢代码中文乱码问题 有些同学因为文章的要求 xff0c 图片插入到word里的时候需要足够清晰 xff0c
  • Java实现LRU

    首先看看什么是LRU LRU是Least Recently Used的缩写 xff0c 即最近最少使用 xff0c 是一种常用的页面置换算法 xff0c 选择最近最久未使用的页面予以淘汰 该算法赋予每个页面一个访问字段 xff0c 用来记录
  • 域名cdn加速(apache与nginx)

    一 xff1a 由于公司业务属于请求量比较大的吧 xff0c 每个月几亿条 xff0c 考虑到安全性 xff0c 所以需要域名由http改为https cdn加速才可以支成撑业务 二 xff1a 之前的系统是使用lamp配置的 xff0c
  • ubuntu系统安装完nvidia显卡驱动后黑屏,不能进入系统

    我之前安装了系统里建议安装的nvidia 380显卡驱动 xff0c 为了安装更高版本的CUDA xff0c 我将nvidia显卡驱动升级到了430 xff0c 但是重启电脑进入Ubuntu系统时黑屏 xff0c 进不去系统界面 xff0c
  • 黑盒模糊测试之AFL++

    git clone depth 1 https github com AFLplusplus AFLplusplus cd AFLplusplus make Build Summary 43 afl fuzz and supporting
  • centos7安装MySQL5.7

    一 下载mysql5 7 1 下载地址 mysql 5 7 28 1 el7 x86 64 rpm bundle tar 2 上传至服务器 3 解压压缩包 解压命令 tar xvf mysql 5 7 28 1 el7 x86 64 rpm
  • 打包VSCode源码为安装程序(.exe)

    参考博客 GitHub vscode里的Packaging部分 xff1a https github com microsoft vscode wiki How to Contribute 这里提供了vscode打包后可以发布的平台代码 x