CN115408120A - 脚本语言文件的运行方法、装置、设备、介质及产品 - Google Patents

脚本语言文件的运行方法、装置、设备、介质及产品 Download PDF

Info

Publication number
CN115408120A
CN115408120A CN202210761035.1A CN202210761035A CN115408120A CN 115408120 A CN115408120 A CN 115408120A CN 202210761035 A CN202210761035 A CN 202210761035A CN 115408120 A CN115408120 A CN 115408120A
Authority
CN
China
Prior art keywords
target
version
scripting language
file
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210761035.1A
Other languages
English (en)
Inventor
傅泽楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Douyin Vision Beijing Co Ltd
Original Assignee
Douyin Vision Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Douyin Vision Beijing Co Ltd filed Critical Douyin Vision Beijing Co Ltd
Priority to CN202210761035.1A priority Critical patent/CN115408120A/zh
Publication of CN115408120A publication Critical patent/CN115408120A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开实施例公开了一种脚本语言文件的运行方法、装置、设备、介质及产品。该方法包括:响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本;通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。本公开实施例,解决了在多个终端会话中无法同时使用不同脚本语言运行环境版本的问题,使得多个终端会话中可以同时使用不同脚本语言运行环境版本。

Description

脚本语言文件的运行方法、装置、设备、介质及产品
技术领域
本公开涉及计算机技术领域,尤其涉及一种脚本语言文件的运行方法、装置、设备、介质及产品。
背景技术
目前,脚本语言运行环境在Windows下只能通过在某个文件夹下创建不同版本脚本语言运行环境的符号链接(Symbol Link)的形式来切换脚本语言运行环境版本,这意味着同一时间只能使用一个脚本语言运行环境版本,不能同时在不同的终端会话中使用不同的脚本语言运行环境版本。
在当前操作系统中,如果租户A正在使用版本A进行构建或者其他任务,此时另一个租户B进入,并希望使用版本B,这时如果用目前的方案的话,可能会导致租户A的构建任务出现异常。因此,如何实现在多个终端会话中同时使用不同脚本语言运行环境版本,是一个亟待解决的问题。
公开内容
有鉴于此,本公开提供一种脚本语言文件的运行方法、装置、设备、介质及产品,能够实现多个终端会话中可以同时使用不同脚本语言运行环境版本。
根据本公开的一方面,本公开实施例提供了一种脚本语言文件的运行方法,该方法包括:
响应于对同一时间内至少两个终端会话的执行命令的操作,确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本;
通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的的脚本语言文件。
根据本公开的另一方面,本公开实施例还提供了一种脚本语言文件的运行装置,该装置包括:
确定模块,用于响应于对同一时间内至少两个终端会话的执行命令的操作,确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本;
启动模块,用于通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。
根据本公开的另一方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的脚本语言文件的运行方法。
根据本公开的另一方面,本公开实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本公开任一实施例所述的脚本语言文件的运行方法。
根据本公开的另一方面,本公开实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现本公开任一实施例所述的脚本语言文件的运行方法。
本公开实施例的技术方案,通过确定当前操作系统下每个终端会话对应的目标脚本语言运行环境版本,通过预先生成的启动器以子进程形式启动目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件,解决了在多个终端会话中无法同时使用不同脚本语言运行环境版本的问题,实现了多个终端会话中可以同时使用不同脚本语言运行环境版本。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种脚本语言文件的运行方法的流程图;
图2为本公开实施例提供的又一种脚本语言文件的运行方法的流程图;
图3为本公开实施例提供的再一种脚本语言文件的运行方法的流程图;
图4为本公开实施例提供的再一种脚本语言文件的运行方法的流程图;
图5是本公开实施例提供的一种脚本语言文件的运行装置的结构框图;
图6示出了可以用来实施本公开的实施例的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在一实施例中,图1为本公开实施例提供的一种脚本语言文件的运行方法的流程图,本实施例可适用于多个终端会话中采用不同版本脚本语言文件的情况,该方法可以由脚本语言运行环境脚本文件的运行装置来执行,该脚本语言文件的运行装置可以采用硬件和/或软件的形式实现,该脚本语言文件的运行装置可配置于电子设备中。如图1所示,该方法包括:
S110、响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个终端会话对应的目标脚本语言运行环境版本。
其中,终端会话指的是Windows下使用例如Cmd、PowerShell、Bash等命令提示符(Command Prompt)提供的程序运行环境。其中,当前操作系统可以理解为软件发布流程中,用于对软件进行编译和构建的环境。目标脚本语言运行环境版本可以理解为在当前操作系统下用户所设置的脚本语言运行环境版本。示例性地,脚本语言运行环境可以为Node.js,相应的,目标脚本语言运行环境版本可以指的是目标Node.js版本。
在本实施例中,当前操作系统可以为持续集成的运行环境,也可以为办公环境,本实施例在此不做限制。执行命令可以为对脚本语言运行环境的执行命令,示例性地,执行命令可以包括:node、npm和npx等基础命令,即脚本语言运行环境在安装之后,自带上述三个基础命令;当然,执行命令也可以包括用户根据需求安装的其它第三方命令(比如,tsc、gulp等),并且,第三方命令的命名与上述基础命令的命名是不同的。
在本实施例中,响应于在同一时间内至少两个终端会话对脚本语言运行环境的执行命令的操作,可以确定当前操作系统下,每个终端会话对应的目标脚本语言运行环境版本。需要说明的是,每个不同的终端会话均可以同时对应不同的目标脚本语言运行环境版本。目标脚本语言运行环境版本可以包含目标脚本语言运行环境版本的脚本语言运行环境版本号,也可以包含目标脚本语言运行环境版本的处理器架构,本实施例在此不做限制。
具体的,在同一时间内可以至少启动两个终端会话执行与脚本语言运行环境有关的命令,可以在当前操作系统下,通过设置相应的环境变量以指定当前操作系统下终端会话所需的目标脚本语言运行环境版本;也可以通过存储的相关配置文件以确定不同的终端会话所对应的目标脚本语言运行环境版本,其中,存储的相关配置文件可以理解为所存储的相关数据信息,可以通过命令行工具进行修改。其中,与脚本语言运行环境有关的命令可以包括下述之一:通过无参数node命令直接打开的交互式编程环境;通过给node命令携带脚本语言文件路径作为参数来运行这个脚本的命令;用于安装第三方程序的npm命令;用于运行第三方程序的npx命令;第三方程序所定义的自定义命令(例如tsc、gulp)。
在一实施例中,目标脚本语言运行环境版本至少包括下述参数:脚本语言运行环境版本号和处理器架构。
其中,脚本语言运行环境版本号可以理解为每个终端会话所对应的目标脚本语言运行环境版本的版本号。当然,脚本语言运行环境版本号可以通过用户进行相应的设置,不同的脚本语言运行环境版本号会存在些许的差异,示例性的,版本号18指的是脚本语言运行环境的版本号,而其他版本可能不支持。
在本实施例中,当前操作系统下每个终端会话对应的目标脚本语言运行环境版本至少包括:脚本语言运行环境版本号和处理器架构。其中,Node.js为某种架构的处理器所编译的特定版本,这种版本能被特定架构的处理所使用。例如,x86只能在AMD和Intel CPU上所使用。
S120、通过预先生成的启动器以子进程形式启动目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。
其中,子进程可以理解为由另一进程,可以对应称之为父进程所创建的进程。可以理解的是,一个进程可能下属多个子进程,但最多只能有1个父进程。需要说明的是,一个子进程继承了对应的父进程的大部分属性,例如可以是环境变量等。
在本实施例中,脚本语言文件可以理解为以JS为扩展名的文件,例如可以是xx.js,脚本语言文件指的是通过JavaScript语言编写的脚本程序,通常用于网页的动态操作。但是本场景的JavaScript通常用作功能性脚本使用。可以理解为,脚本语言文件可以为JS脚本文件。
在本实施例中,预先生成的启动器可以用于启动某个命令的可执行文件,示例性的,node命令会有一个名为node或者node.exe的可执行文件。可以创建多个启动器,可以通过读取相应的文件名以区分用来执行哪个命令的启动器。
在本实施例中,如果用户在终端中使用了一个命令,系统则会寻找到对应这个命令的可执行文件,例如node命令在Windows下会使用名为node.exe的可执行文件。在应用场景中,由于已经生成了node.exe的可执行文件,并且被系统认为可以作为命令使用。因此用户在执行node命令时,则会运行启动器。其中,启动器能够获取启动器自身的文件名,例如node.exe,则代表用户想要执行node命令,这时,启动器会去寻找用户通过环境变量所设置的脚本语言运行环境版本,去寻找用户已经安装的对应版本的脚本语言运行环境所在的位置,并执行这个脚本语言运行环境版本中对应node命令的程序,即真正的脚本语言运行环境脚本运行程序node.exe(和启动器同名,但不是同一个东西,一个是启动器,一个是被启动的程序)。而对于node.exe之外的,例如npm/npx或者用户手动安装的命令,同样会生成同名的启动器。但是它们最后要启动的是.脚本语言文件,而不是可执行程序,例如这两个命令最后会生成对应的启动器npm.exe和npx.exe,但是这些启动器在运行时,会借助脚本语言运行环境脚本运行程序(非启动器的同名node.exe)去运行事先定义好的对应npm、npx等命令的.脚本语言文件。因此,需要清晰地列出对于不同命令,启动器的运行行为:①命令:node,最主要的用户运行脚本的命令,对应生成启动器node.exe,直接启动对应版本脚本语言运行环境的实际node.exe;②命令:npm,node所自带的功能命令,对应生成启动器npm.exe,通过对应版本的脚本语言运行环境启动其相应的npm.js脚本;③命令:tsc,用户手动安装的第三方命令,对应生成启动器tsc.exe,通过对应版本的脚本语言运行环境启动其响应的tsc.js脚本。
本实施例的技术方案,通过确定当前操作系统下每个终端会话对应的目标脚本语言运行环境版本,通过预先生成的启动器以子进程形式启动目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件,解决了在多个终端会话中无法同时使用不同脚本语言运行环境版本的问题,实现了多个终端会话中可以同时使用不同脚本语言运行环境版本。
在一实施例中,图2为本公开实施例提供的又一种脚本语言文件的运行方法的流程图,本实施例在上述各实施例地基础上,进行了进一步的细化,如图2所示,本实施例中的脚本语言文件的运行方法具体可以包含如下步骤:
S210、响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个终端会话对应的目标脚本语言运行环境版本。
S220、获取目标脚本语言运行环境版本对应的脚本语言运行环境版本发行版的压缩包。
在本实施例中,用户可以选择想要安装的目标脚本语言运行环境版本,程序会自动从目标脚本语言运行环境版本的官方网站进行下载相对应的脚本语言运行环境版本发行版的压缩包,并进行相应的脚本语言运行环境版本发行版的压缩包的解压操作。
需要说明的是,目标脚本语言运行环境版本的安装功能可以包含目标脚本语言运行环境版本的压缩包下载、压缩包解压、确定压缩包解压后相对应的脚本语言文件的文件夹名称以及目标脚本语言运行环境版本配置文件的写入。
S230、将脚本语言运行环境版本发行版的压缩包解压至预先创建的目标文件夹。
其中,目标文件夹以目标脚本语言运行环境版本对应的脚本语言运行环境版本号命名。示例性的,目标文件夹可以以脚本语言运行环境版本号-处理器架构的格式对应的脚本语言运行环境版本号命名进行命名。
其中,脚本语言运行环境版本发行版的压缩包可以理解为脚本语言运行环境版本通过测试实行进行上架的脚本语言运行环境版本压缩包。脚本语言运行环境版本发行版的压缩包可以在从目标网址中进行下载。示例性地,目标网址可以为脚本语言运行环境的官网所对应的网址。
在本实施例中,在获取到目标脚本语言运行环境版本对应的脚本语言运行环境版本压缩包之后,可以对相应的脚本语言运行环境版本压缩包的解压操作,以将脚本语言运行环境版本发行版的压缩包解压至预先创建的目标文件夹中。示例性的,当用户确定脚本语言运行环境版本发行版的压缩包,对压缩包进行下载,之后对下载的压缩包进行相应的解压,需要解压到脚本语言运行环境版本对应的文件夹中。
S240、将目标文件夹的访问路径和对应的脚本语言运行环境版本号存储至预先创建的配置文件。
其中,预先创建的配置文件可以理解为脚本语言文件的相关数据信息以及属性信息等,例如可以是脚本语言运行环境版本号的相关信息,也可以是处理器架构的相关属性信息,本实施例在此不做限制。
在本实施例中,可以将目标文件夹的访问路径和对应的脚本语言运行环境版本号,处理器架构,以及是否为长期支持LTS的信息存储至预先创建的配置文件。其中,配置文件可以通过运行命令进行相应的修改,示例性的,可以设置默认所要使用的目标脚本语言运行环境版本的版本号以及处理器架构。
在一实施例中,属性信息包括:脚本语言运行环境版本号,处理器架构,以及是否为长期支持LTS的信息。
在本实施例中,目标脚本语言运行环境版本解压后相对应的脚本语言文件的属性信息可以包括脚本语言运行环境版本号信息,也可以包括处理器架构信息,还可以包括是否为长期支持LTS的信息。
S250、通过预先生成的启动器以子进程形式启动目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。
本公开实施例的上述技术方案,在上述实施例的基础上,通过实时获取目标脚本语言运行环境版本对应的脚本语言运行环境版本发行版的压缩包,确定脚本语言运行环境版本发行版的压缩包,解压产物所保存的文件夹名称;,并可以自动将携带文件夹名称的脚本语言运行环境版本信息存储至预先创建的配置文件,进行配置文件的更新,以使得在多个终端进行会话时,不同目标脚本语言运行环境版本可以实时进行切换。
在一实施例中,图3为本公开实施例提供的再一种脚本语言文件的运行方法的流程图,本实施例在上述各实施例地基础上,进行了进一步的细化,如图3所示,本实施例中的脚本语言文件的运行方法具体可以包含如下步骤:
S310、响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个终端会话对应的目标脚本语言运行环境版本。
S320、将预先创建的至少两个启动器存储至预设文件夹中。
其中,预设文件夹可以也称为bin文件,指的是用户存放可以被终端作为命令执行的程序。一般被命名为bin,而且会被添加到PATH环境变量中,以便能够在终端中直接运行文件夹下的可执行文件。bin文件夹存放着许多可执行文件,例如可以是node.exe、npm.exe之类的,从而使得可以直接在终端中使用node、npm命令。
在本实施例中,启动器指的是脚本语言的主启动器,可以为脚本语言运行环境的主程序,例如可以是node.exe,以及包管理工具,例如可以是npm.exe。
S330、读取预先扫描的每个脚本语言运行环境安装目录下的至少一个命令行脚本。
在本实施例中,读取预先扫描每个脚本语言运行环境版本所在安装目录下的至少一个命令行脚本,例如可以是foo或foo.cmd,以这种形式命名的文件通常可以理解为目标脚本语言运行环境版本中用户通过npm所安装的全局命令,同时npm本身也是以这种形式作为npm和npm.cmd存在的。
需要说明的是,需要扫描每个脚本语言运行环境安装目录下的命令行脚本(比如有三个命令行脚本叫做foo.cmd、bar.cmd、baz cmd),得到需要添加的一个或者多个命令,例如foo、bar、baz会针对每一个命令去进行注册操作,其中,注册操作可以包含3个步骤:一是:读取刚刚扫描到的命令行脚本文件(例如foo.cmd)的内容,扫描到这个命令(foo)实际对应的JS脚本文件路径(例如node_modules、.bin、oo.js);二是:将命令(foo)和扫描到的JS脚本文件路径(node_modules、bin、foo.js)的对应关系存储至配置文件中;三是:创建命令(foo)对应的启动器(foo.exe)。
需要说明的是,在用户每次运行npm命令之后需要扫描全局命令,这是因为用户运行npm命令之后,可以产生新的命令,所以才需要进行扫描。
在本实施例中,S320与S330的执行顺序不作限制,可以先执行S320,再执行S330;也可以先执行S330,再执行S320;也可以S320与S330同时执行。
S340、在每个命令行脚本中扫描对应的脚本语言文件路径。
在本实施例中,在每个脚本语言运行环境安装目录下的每个命令行脚本中,扫描与各命令行脚本所对应的脚本语言文件路径,并进行相应的解析,通过相应的表达式分析出所指的脚本语言文件路径。示例性的,例如可以是在node、npx以及npm行脚本中扫描对应的脚本语言文件路径。
S350、将目标命令和脚本语言文件路径的对应关系存储至对应的配置文件中。
其中,目标命令为命令行脚本所对应的命令。
在本实施例中,可以将目标命令和脚本语言文件路径的对应关系,存储至对应的配置文件中。需要说明的是,目标命令为命令行脚本所对应的命令,目标命令可以分为不同的命令类型,可以为node命令类型或者为非node命令类型。示例性的,目标命令为node,则可以称为node命令类型;目标命令为非node,则可以称为非node命令类型。
S360、创建目标命令对应的启动器。
在本实施例中,启动器会跟随工具去发布。启动器一般可以理解为一个可执行文件,本实施例中需要创建目标命令对应的启动器,示例性的,可执行文件launcher.exe,如果要给目标命令foo创建一个启动器,此时会把launcher.exe复制一份,改名叫foo.exe。
在本实施例中,目标命令与启动器的名称是相对应的,可以认为目标命令与启动器的名称是相同的。示例性的,当目标命令为node命令,需要在终端中输入node,相应的启动名称为node或者node.exe的程序,启动器的名称和目标命令是相对应的,但是目标命令中可以不包含exe。
S370、通过预先生成的启动器以子进程形式启动目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。
本公开实施例的上述技术方案,通过读取预先扫描的每个脚本语言运行环境安装目录下的至少一个命令行脚本,在每个命令行脚本中扫描对应的脚本语言文件路径,并将目标命令名称和脚本语言文件路径的对应关系存储至对应的配置文件中,创建目标命令对应的启动器,实现了自动扫描并生成用于执行该命令的启动器。
在一实施例中,图4为本公开实施例提供的再一种脚本语言文件的运行方法的流程图,本实施例在上述各实施例地基础上,对确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本以及通过预先生成的启动器以子进程形式启动目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件,进行了进一步的细化。如图4所示,该方法包括:
S410、响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个终端会话对应的目标脚本语言运行环境版本。
在本实施例中,S410实现方案可以包括两种,一种为:响应于对同一时间内至少两个终端会话启动脚本语言运行环境和对应的命令(比如,node、npm和npx三个不同的命令)的操作,获取当前操作系统下的父进程或终端会话的环境变量,根据环境变量确定终端会话对应的目标脚本语言运行环境版本;另一种为:响应于对同一时间内至少两个终端会话的启动操作,根据预先存储的配置文件确定终端会话对应的目标脚本语言运行环境版本。
其中,父进程可以理解为已创建一个或多个子进程的进程。环境变量可以理解为在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量包含了一个或者多个应用程序所将使用到的信息。例如Windows中的PATH环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置PATH环境变量,来更好的运行进程。
在本实施例中,响应于对同一时间内至少两个终端会话执行命令的操作,可以获取当前操作系统环境下的父进程或终端会话的相关环境变量,用户可以通过设置相应的环境变量以指定当前操作系统下,所需要的目标脚本语言运行环境版本信息。需要说明的是,响应于对同一时间内至少两个终端会话执行命令的操作,可以通过所获取的当前操作系统下的父进程或终端会话的环境变量,以确定终端会话对应的目标脚本语言运行环境版本,也可以通过预先存储的相关配置文件,以确定终端会话所对应的目标脚本语言运行环境版本。
S420、如果目标命令为第一类型命令,直接通过启动器以子进程形式启动目标脚本语言运行环境版本所在脚本语言运行环境安装目录中的可执行文件。
其中,第一类型命令可以理解为直接通过启动器以子进程形式,启动目标脚本语言运行环境版本所在脚本语言运行环境安装目录中的可执行文件时的类型命令。示例性的,第一类型命令可以为node命令,所在脚本语言运行环境安装目录中的可执行文件可以为node.exe文件。
在本实施例中,在目标脚本语言运行环境版本的文件名称所对应的命令类型为第一类型命令时,可以直接通过启动器以子进程方式,启动目标脚本语言运行环境版本所在脚本语言运行环境安装目录中的可执行文件。具体的,可以同命令行工具进行生成。其中,命令行工具可以包括目标脚本语言运行环境版本的安装功能以及切换功能,并且可以提供一个命令用于扫描所有已安装目标脚本语言运行环境版本的下的所有npm全局命令。
S430、如果目标命令为第二类型命令,通过启动器获取并读取目标脚本语言运行环境版本和目标命令相对应的脚本语言文件的所在位置,并以子进程形式通过脚本语言运行环境执行脚本语言文件。
其中,第二类型命令可以理解为通过启动器获取并读取目标脚本语言运行环境版本所对应脚本语言文件的所在位置,并以子进程形式通过脚本语言运行环境执行脚本语言文件时的类型命令。示例性的,第二类型命令可以为非node命令。
在本实施例中,在目标脚本语言运行环境版本的文件名称所对应的命令类型为第一类型命令时,可以通过启动器获取并读取配置以获取目标脚本语言运行环境版本所对应脚本语言文件的所在位置,并以子进程形式通过脚本语言运行环境执行脚本语言文件。具体的,命令行工具可以通过读取配置文件,以获取目标脚本语言运行环境版本执行脚本文件,即可执行相应的命令。
需要说明的是,当目标脚本语言运行环境版本的文件名称所对应的命令类型为其他命令类型时,也有相对应的操作。示例性的,对于npm-g命令,由于npm-g命令会新增或删除npm全局命令,因此在npm-g命令运行完成时,需要调用命令行工具中扫描命令的功能。
本公开上述技术方案,通过获取当前操作系统下的父进程或终端会话的环境变量,根据环境变量确定终端会话对应的目标脚本语言运行环境版本;或者,根据预先存储的配置文件确定终端会话对应的目标脚本语言运行环境版本,并在目标命令为第一类型命令时,直接通过启动器以子进程形式启动目标脚本语言运行环境版本所在脚本语言运行环境安装目录中的可执行文件,在目标命令为第二类型命令时,通过启动器获取并读取与目标脚本语言运行环境版本和目标命令相对应的脚本语言文件的所在位置,并以子进程形式通过脚本语言运行环境执行所述JS脚本文件,进一步解决了在多个终端会话中无法同时使用不同脚本语言运行环境版本的问题,实现多个终端会话中可以同时使用不同脚本语言运行环境版本。
在一实施例中,本公开实施例给出了一种启动器启动时的工作流程,其中,脚本语言运行环境版本为Node.js版本,则将目标Node.js版本作为目标脚本语言运行环境版本;当前操作系统可以为持续集成环境。node命令表示为第一类型命令;非node命令表示为第二类型命令,node.exe文件表示为可执行文件,具体如下:
在本实施例中,启动器是用于启动某个命令的可执行文件,例如node命令会有一个名为node或者node.exe的可执行文件。可以创建多个启动器,但是本质上是同一个程序,但是会通过读取自己的文件名来区分自己是用来执行哪个命令的启动器。
其中,启动器被启动时的工作流程具体为:
a1、获取用户所想要使用的Node.js版本。Node.js版本可以通过两种方式进行获取,一是通过父进程或者终端会话的环境变量,即用户可以通过设置环境变量来指定当前持续集成环境下需要使用的Node.js版本。另一种是通过预先存储的配置文件,其中,预先存储的配置文件可以通过命令行工具进行修改,可以设置全局默认所要使用的Node.js版本。
a2、读取Node.js版本的文件名,例如在Windows下是node.exe,则命令为node,在类Unix操作系统下,命令和文件名一致。
a3、对于node命令,可以直接通过启动子进程的方式,执行所要使用的Node.js版本目录下的node.exe文件,如果想要使用的Node.js版本不存在,则报错。其中,所要使用的Node.js版本的目录,可以从配置文件中进行读取,通过命令行工具生成。
a4、对于非node命令,命令行工具会分析到Node.js版本所对应的.js脚本文件的位置,所以只需要从配置文件中读取它所对应的.js脚本文件的位置,并通过启动子进程的方式,利用Node.js执行这个脚本,即可执行非node命令。
在本实施例中,启动器在执行命令的一些额外操作:对于npm-g命令,因为这个命令会添加或者删除新的npm全局命令,因此在这个命令运行完成的时候,需要调用命令行工具中扫描命令的功能。
在一实施例中,本公开实施例给出了一种命令行Node.js版本安装功能的工作流程,具体步骤可以如下:
在本实施例中,命令行工具包括Node.js版本的安装、切换功能,并且提供一个命令用于扫描所有已安装Node.js版本的下的所有npm全局命令。
其中,Node.js版本安装功能主要包含:Node.js版本的下载、解压、配置文件的写入。
在本实施例中,命令行Node.js版本安装功能的主要工作流程如下:
b1、根据用户想要安装的Node.js版本,从Node.js官方网站下载对应的Node.js版本压缩包。
b2、解压下载的压缩包,并且以版本-处理器架构的格式命名文件夹。
b3、将下载的Node.js压缩包的版本号、架构、是否为LTS的信息存储到配置文件中。
在本实施例中,Node.js版本切换功能主要用于切换默认的Node.js版本,运行命令的作用是用于修改配置文件,设置默认所要使用的Node.js的版本和处理器架构。
在一实施例中,本公开实施例给出了一种扫描全局命令的工作流程,其中,bin文件夹表示预设文件夹,具体步骤可以如下:
在本实施例中,扫描全局命令的作用,一是创建node、npm、npx等基础命令,另一种是扫描所有Node.js版本安装的npm的全局命令。
其中,扫描全局命令的主要工作流程如下:
c1、创建名为node、npm、npx的启动器,放入bin文件夹。bin文件夹指的是存放全局命令的文件夹,可以是系统默认的bin文件夹,也可以是版本管理器自己创建的文件夹,自己创建的文件夹需要添加到操作系统的PATH环境变量下,以便能够在终端中直接运行文件夹下的可执行文件。
c2、扫描每个Node.js安装目录下的命令行脚本,例如foo、foo.cmd、foo.ps1,以这种形式命名的文件通常就是这个版本的Node.js中的npm所安装的全局命令。并解析其内容,通过正则表达式分析出它所指向的.js脚本文件。
c3、将所扫描到的启动器的“命令名称”以及“Node.js版本所对应的.js脚本文件”存储到预先存储的配置文件中。
在一实施例中,图5是本公开实施例提供的一种脚本语言文件的运行装置的结构框图,该装置适用于多个终端会话中采用不同版本脚本语言文件的情况,该装置可以由硬件/软件实现。可配置于电子设备中来实现本公开实施例中的一种脚本语言文件的运行装置。需要说明的是,脚本语言文件的运行装置,可以为启动器,并在启动器中包含有确定模块和启动模块,即采用启动器中的确定模块确定当前操作系统下每个终端会话对应的目标脚本语言运行环境版本;采用启动器中的启动模块,通过目标脚本语言运行环境版本运行对应的脚本语言文件。
如图5所示,该装置包括:确定模块510以及启动模块520。
其中,确定模块,用于响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本;
启动模块,用于通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。
本公开实施例的技术方案,确定模块,响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个终端会话对应的目标脚本语言运行环境版本;启动模块,通过预先生成的启动器以子进程形式启动目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件,解决了在多个终端会话中无法同时使用不同脚本语言运行环境版本的问题,实现了多个终端会话中可以同时使用不同脚本语言运行环境版本。
在一实施例中,脚本语言文件的运行装置,包括:
压缩包获取模块,用于在所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件之前,获取所述目标脚本语言运行环境版本对应的脚本语言运行环境版本发行版的压缩包。
名称确定模块,用于将所述脚本语言运行环境版本发行版的压缩包解压至预先创建的目标文件夹;其中,所述目标文件夹以所述目标脚本语言运行环境版本对应的脚本语言运行环境版本号命名;
第一存储模块,用于将所述目标文件夹的访问路径和对应的脚本语言运行环境版本号存储至预先创建的配置文件。
在一实施例中,脚本语言文件的运行装置,还包括:
第二存储模块,用于在所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件之前,将预先创建的至少两个启动器存储至预设文件夹中。
在一实施例中,脚本语言文件的运行装置,还包括:
脚本读取模块,读取预先扫描的每个脚本语言运行环境安装目录下的至少一个命令行脚本;
文件扫描模块,用于在每个所述命令行脚中扫描本对应的脚本语言文件路径;
第三存储模块,用于将所述目标命令和所述脚本语言文件路径的对应关系存储至对应的配置文件中,其中,所述目标命令为命令行脚本所对应的命令。
在一实施例中,确定模块510,包括:
变量获取单元,用于获取当前操作系统下的父进程或终端会话的环境变量;
第一版本确定单元,用于根据所述环境变量确定所述终端会话对应的目标脚本语言运行环境版本。
在一实施例中,确定模块510,还包括:
第二版本确定单元,用于根据预先存储的配置文件确定所述终端会话对应的目标脚本语言运行环境版本。
在一实施例中,启动模块520,还包括:
第一启动单元,用于如果所述目标命令为第一类型命令,直接通过启动器以子进程形式启动所述目标脚本语言运行环境版本所在脚本语言运行环境安装目录中的可执行文件;
第二启动单元,用于如果所述目标命令为第二类型命令,通过启动器获取并读取所述目标脚本语言运行环境版本和所述目标命令相对应的脚本语言文件的所在位置,并以子进程形式通过脚本语言运行环境执行所述脚本语言文件。
在一实施例中,所述属性信息包括:脚本语言运行环境版本号,处理器架构,以及是否为长期支持LTS的信息。
在一实施例中,所述目标脚本语言运行环境版本至少包括下述参数:脚本语言运行环境版本号和处理器架构。
本公开实施例所提供的脚本语言文件的运行装置可执行本公开任意实施例所提供的脚本语言文件的运行方法,具备执行方法相应的功能模块和有益效果。
在一实施例中,图6示出了可以用来实施本公开的实施例的电子设备的结构示意图。电子设备10旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如脚本语言文件的运行方法。
在一些实施例中,脚本语言文件的运行方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的脚本语言文件的运行方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行脚本语言文件的运行方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
在一实施例中,本公开实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一实施例所述的脚本语言文件的运行方法。
根据本公开的一个或多个实施例,【示例1】提供了一种脚本语言文件的运行方法,包括:
响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本;
通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。
根据本公开的一个或多个实施例,【示例2】提供了示例1的方法,在所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件之前,还包括:
获取所述目标脚本语言运行环境版本对应的脚本语言运行环境版本发行版的压缩包;
将所述脚本语言运行环境版本发行版的压缩包解压至预先创建的目标文件夹;其中,所述目标文件夹以所述目标脚本语言运行环境版本对应的脚本语言运行环境版本号命名;
将所述目标文件夹的访问路径和对应的脚本语言运行环境版本号存储至预先创建的配置文件。
根据本公开的一个或多个实施例,【示例3】提供了示例1的方法,在所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件之前,还包括:
将预先创建的至少两个启动器存储至预设文件夹中。
根据本公开的一个或多个实施例,【示例4】提供了示例1的方法,在所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件之前,还包括:
读取预先扫描的每个脚本语言运行环境安装目录下的至少一个命令行脚本;
在每个所述命令行脚本中扫描对应的脚本语言文件路径;
将所述所述目标命令和所述脚本语言文件的对应关系存储至对应的配置文件中;
创建所述目标命令对应的启动器。
根据本公开的一个或多个实施例,【示例5】提供了示例1-4的方法,所述确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本,包括:
获取当前操作系统下的父进程或终端会话的环境变量;
根据所述环境变量确定所述终端会话对应的目标脚本语言运行环境版本。
根据本公开的一个或多个实施例,【示例6】提供了示例1-4的方法,所述确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本,包括:
根据预先存储的配置文件确定所述终端会话对应的目标脚本语言运行环境版本。
根据本公开的一个或多个实施例,【示例7】提供了示例1-4的方法,所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本的脚本语言文件,包括:
如果所述目标命令为第一类型命令,直接通过启动器以子进程形式启动所述目标脚本语言运行环境版本所在脚本语言运行环境安装目录中的可执行文件;
如果所述目标命令为第二类型命令,通过启动器获取并读取所述目标脚本语言运行环境版本和所述目标命令相对应的脚本语言文件的所在位置,并以子进程形式通过脚本语言运行环境执行所述脚本语言文件。
根据本公开的一个或多个实施例,【示例8】提供了示例2的方法,所述属性信息包括:脚本语言运行环境版本号,处理器架构,以及是否为长期支持LTS的信息。
根据本公开的一个或多个实施例,【示例9】提供了示例1-4的方法,所述目标脚本语言运行环境版本至少包括下述参数:脚本语言运行环境版本号和处理器架构。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (13)

1.一种脚本语言文件的运行方法,其特征在于,包括:
响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本;
通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。
2.根据权利要求1所述的方法,其特征在于,在所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件之前,还包括:
获取所述目标脚本语言运行环境版本对应的脚本语言运行环境版本发行版的压缩包;
将所述脚本语言运行环境版本发行版的压缩包解压至预先创建的目标文件夹;
将所述目标文件夹的访问路径和对应的脚本语言运行环境版本号存储至预先创建的配置文件。
3.根据权利要求1所述的方法,其特征在于,在所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件之前,还包括:
将预先创建的至少两个启动器存储至预设文件夹中。
4.根据权利要求1所述的方法,其特征在于,在所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件之前,还包括:
读取预先扫描的每个脚本语言运行环境安装目录下的至少一个命令行脚本;
在每个所述命令行脚本中扫描对应的脚本语言文件路径;
将所述目标命令和所述脚本语言文件路径的对应关系存储至对应的配置文件中;其中,所述目标命令为命令行脚本所对应的命令;
创建所述目标命令对应的启动器。
5.根据权利要求1-4任一所述的方法,其特征在于,所述确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本,包括:
获取当前操作系统下的父进程或终端会话的环境变量;
根据所述环境变量确定所述终端会话对应的目标脚本语言运行环境版本。
6.根据权利要求1-4任一所述的方法,其特征在于,所述确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本,包括:
根据预先存储的配置文件确定所述终端会话对应的目标脚本语言运行环境版本。
7.根据权利要求1-4任一所述的方法,其特征在于,所述通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件,包括:
如果所述目标命令为第一类型命令,直接通过启动器以子进程形式启动所述目标脚本语言运行环境版本所在脚本语言运行环境安装目录中的可执行文件;
如果所述目标命令为第二类型命令,通过启动器获取并读取所述目标脚本语言运行环境版本和所述目标命令相对应的脚本语言文件的所在位置,并以子进程形式通过脚本语言运行环境执行所述脚本语言文件。
8.根据权利要求2所述的方法,其特征在于,所述属性信息包括:脚本语言运行环境版本号,处理器架构,以及是否为长期支持LTS的信息。
9.根据权利要求1-4中任一项所述的方法,其特征在于,所述目标脚本语言运行环境版本至少包括下述参数:脚本语言运行环境版本号和处理器架构。
10.一种脚本语言文件的运行装置,其特征在于,包括:
确定模块,用于响应于对同一时间内至少两个终端会话执行命令的操作,确定当前操作系统下每个所述终端会话对应的目标脚本语言运行环境版本;
启动模块,用于通过预先生成的启动器以子进程形式启动所述目标脚本语言运行环境版本,以通过目标脚本语言运行环境版本运行对应的脚本语言文件。
11.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的脚本语言文件的运行方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-9中任一项所述的脚本语言文件的运行方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的脚本语言文件的运行方法。
CN202210761035.1A 2022-06-29 2022-06-29 脚本语言文件的运行方法、装置、设备、介质及产品 Pending CN115408120A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210761035.1A CN115408120A (zh) 2022-06-29 2022-06-29 脚本语言文件的运行方法、装置、设备、介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210761035.1A CN115408120A (zh) 2022-06-29 2022-06-29 脚本语言文件的运行方法、装置、设备、介质及产品

Publications (1)

Publication Number Publication Date
CN115408120A true CN115408120A (zh) 2022-11-29

Family

ID=84157606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210761035.1A Pending CN115408120A (zh) 2022-06-29 2022-06-29 脚本语言文件的运行方法、装置、设备、介质及产品

Country Status (1)

Country Link
CN (1) CN115408120A (zh)

Similar Documents

Publication Publication Date Title
KR102493449B1 (ko) 엣지 컴퓨팅 테스트 방법, 장치, 전자 장치 및 컴퓨터 판독 가능 매체
US20170139720A1 (en) Digital assistant setting up device
CN111913884A (zh) 分布式测试方法、装置、设备、系统和可读存储介质
CN113050940A (zh) 小程序的预览方法、相关装置及计算机程序产品
CN115237436A (zh) 应用部署方法、装置、电子设备及可读存储介质
CN113377665A (zh) 基于容器技术的测试方法、装置、电子设备及存储介质
CN112506854A (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN117234582A (zh) 一种项目代码处理方法、装置、电子设备及存储介质
CN112328225A (zh) 一种页面运行方法及其运行系统
CN112905225A (zh) 创建持续集成工具构建任务的方法和装置
CN116089739A (zh) 消息推送方法、装置、电子设备和存储介质
CN116126719A (zh) 接口测试方法、装置、电子设备及存储介质
CN115408120A (zh) 脚本语言文件的运行方法、装置、设备、介质及产品
CN114661274A (zh) 用于生成智能合约的方法和装置
CN115248735A (zh) 一种日志数据输出控制方法、装置、设备及存储介质
CN114389969A (zh) 客户端的测试方法、装置、电子设备和存储介质
CN111176982A (zh) 一种测试界面生成方法和装置
CN114401300B (zh) 云应用控制方法、装置、设备、介质及程序产品
CN112764828B (zh) 业务逻辑管理方法及装置、计算机设备和介质
CN115640015A (zh) 安卓应用程序的构建方法、装置、设备及存储介质
CN117850991A (zh) 基于electron的本地应用快捷启动方法、装置、设备及介质
CN116974940A (zh) 一种接口测试方法、装置、设备及存储介质
CN117742699A (zh) 应用程序的功能模块生成方法、装置、设备及存储介质
CN114422638A (zh) 云手机控制方法、装置、设备、介质及程序产品
CN117371416A (zh) 一种项目文档生成方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination