如何使用名称前没有`node`的Powershell执行node.js文件?

How to execute node.js file with Powershell without `node` before the name?

有没有一种方法可以从 Powershell 执行 node.js 个文件,而无需调用文件名前带有 node 的文件?

示例:

现在我是这样执行的:node .\script.mjs.

我只想用名字来执行它:.\script.mjs.

怎么办?

也许您可以使用 vercel/pkg 从该文件创建一个可执行文件,然后可以 运行 pkg .\script.mjs -t win 使用 pkg

创建一个 exe 文件

您可以注册 .mjs 文件扩展名,默认使用 node.exe 打开。然后你可以通过提供 .mjs 文件的路径来调用节点。步骤:

  1. 右键单击任何 .mjs 文件
  2. 单击打开方式/打开方式...
  3. 单击选择另一个应用程序 / 更多应用程序↓ > 在这台电脑上寻找另一个应用程序
  4. 导航到您的 node.exe 文件
  5. 勾选始终使用此应用打开 .mjs 文件复选框
  6. 确认

现在只需在CMD或PowerShell中输入.\script.mjs即可使用node自动打开文件

同意@tackprotector,你可以使用cmd.exe命令行和以下两个工具来做同样的事情:

Assoc 显示或修改文件扩展名关联。如果不带参数使用,assoc 将显示所有当前文件扩展名关联的列表。如果你输入 assoc .txt 它 returns .txt=txtfile.

Ftype 显示或修改文件扩展名关联中使用的文件类型。如果在没有赋值运算符 (=) 的情况下使用,ftype 显示指定文件类型的当前打开命令字符串。如果不带参数使用,ftype 将显示定义了打开命令字符串的文件类型。如果你输入 ftype textfile 它 returns textfile="%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" "%1"

所以如果我输入 assoc .mjs 它 returns 没有任何东西与 .mjs

相关联

所以我输入(在 cmd 中。作为管理员):

assoc .mjs=nodejsfile
ftype nodejsfile=%ProgramFiles(x86)%\Notepad++\notepad++.exe %1

第一次调用.mjs文件时,它会询问我是否要使用记事本++打开它,之后关联完成。你可以用 node.exe.

做同样的事情