ES6 模块如何作为 Node 中的脚本运行?

2023-12-28

ES6 模块如何作为 Node 中的脚本运行?

当我尝试这个 shebang 时,我收到一个错误:

#!/usr/bin/env node --experimental-modules

/usr/bin/env: ‘node --experimental-modules’: 没有这样的文件或目录

如果我使用这个 shebang 它会有语法错误(当然):

#!/usr/bin/env node

语法错误:意外的令牌导入

我正在使用的解决方法是使用 shell 脚本来调用模块:

#!/usr/bin/env sh

BASEDIR=$( dirname "$0" )
node --experimental-modules $BASEDIR/script.mjs "$@"

是否可以在没有第二个文件的情况下使其工作?


我已经打补丁了伊尚·蒂利纳·索马西里 https://stackoverflow.com/a/48179910/791414配合使用的解决方案Node 13没有.mjs扩大:

#!/usr/bin/env bash
":" //# comment; exec /usr/bin/env node --input-type=module - "$@" < "$0"

import { hostname } from 'os';

console.log(hostname());

技巧几乎相同,但是使用 stdin,这是唯一的有记录的 https://nodejs.org/dist/latest-v13.x/docs/api/esm.html#esm_enabling当你没有的时候package.json也不.mjs扩大。因此,这是一个独立的无扩展脚本。

However,全局变量如__dirname or __filename将不可用。

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

ES6 模块如何作为 Node 中的脚本运行? 的相关文章

随机推荐

  • 单个线程池的设计比多个线程池更好吗

    Java 中拥有多个线程池有哪些优点和缺点 我见过代码中有多个线程池用于不同 类型 的任务 我不确定它是更好的设计还是只是开发人员懒惰 一个例子是使用调度线程池执行器 http docs oracle com javase 7 docs a
  • React-Router 外部链接

    由于我使用 React Router 来处理 React 应用程序中的路由 我很好奇是否有一种方法可以重定向到外部资源 说有人打 example com privacy policy 我希望它重定向到 example zendesk com
  • 使用 jQuery 旋转图像 OnClick?

    我有这个代码 http jsfiddle net Q4PUw 2 http jsfiddle net Q4PUw 2 因此 这是一个简单的从隐藏到可见的 jQuery 脚本 我想知道如何做是在 扩展一 类中放置一个图像 该图像将旋转 90
  • Gmail如何在页面之间保留复选框选择

    在 gmail 中 如果您选中标记电子邮件 4 然后移动到不同的 50 或 25 条记录集并标记选择 26 那么如果您来回移动 4 和 26 都会保留 谷歌是如何做到这一点的 是否可以在仅包含 50 条记录的页面中执行类似的操作 并且当单击
  • 如何在 Jenkins 中配置 Selenium HTML 报告

    我们在 Jenkins 中配置了 Java MOJO 一旦在 CI 中构建代码 就会生成可靠的报告 我们有 Junit 和 Selenium 测试用例来测试应用程序 我需要以 HTML 格式呈现来自测试用例的结果 Jenkins 有没有可用
  • Laravel 5 在两列上有很多关系

    两列上是否可以有 hasMany 关系 我的表有两列 user id and related user id 我希望我的关系与任一列相匹配 在我的模型中我有 public function userRelations return this
  • 自定义函数中的序列对象

    我试图有条件地 通过参数 从 4 个序列中获取下一个值 在自定义标量值函数中 我尝试使用 序列的下一个值 序列定义为 CREATE SEQUENCE dbo sequence1 AS int START WITH 1 INCREMENT B
  • Pandas - 在索引中使用 merge_asof 函数

    代码是 import numpy as np import pandas as pd dateparse lambda x pd datetime strptime x d m Y H M vento pd read csv dados t
  • BigDecimal/双精度 - 数字向上舍入更高

    下面的第二个方法调用 setYCooperative 得到错误的值 89 99999435599995 而不是 89 99999435599994 第一次调用 setXCooperative 获得正确的值 29 99993874900002
  • JavaScript 有没有办法定期调用函数?

    JavaScript 有没有办法定期调用函数 The setInterval 方法 重复调用函数或执行代码片段 每次调用之间有固定的时间延迟 它返回一个唯一标识该间隔的间隔 ID 因此您可以稍后通过调用clearInterval 将其删除
  • Android - 将多种字体样式组合成一种字体(Typeface)

    我有几种不同风格的字体 可以说 MyFont default otf MyFont italic otf MyFont bold otf 通常 我会像这样设置 TextView 的字体 Typeface tf Typeface create
  • R 按选定行号动态分割数据帧/子集 - 解析文本网格 praat

    我正在尝试处理一个名为的 分段文件 TextGrid 由 Praat 程序生成 原始格式如下所示 File type ooTextFile Object class TextGrid xmin 0 xmax 243 761375 tiers
  • Django - 迁移外键字段类型与当前类型不匹配

    我正在使用 MSSQL 数据库 并且在 Django 进入演出之前我已经创建了一些表 因此检查数据库我得到了模型managed False元选项 然后我创建了其他与 Django 迁移相关的内容 这些模型是这样的 class ModelAl
  • Windows UAC 对话框

    我有一个没有资源的应用程序 根本没有资源 所以也没有 UAC 清单 该应用程序使用 CopyFile 将自身安装到 appdata roaming 文件夹中 它还设置自动启动 以便每次启动时自动启动 现在 每次启动电脑时 都会弹出 UAC
  • is_assignable<> 的结果不一致[重复]

    这个问题在这里已经有答案了 可能的重复 is convertible is assignable 和 有什么区别 https stackoverflow com questions 13952404 what is the differen
  • Rails 3 邮件发送问题

    我正在使用 Rails 3 并实现电子邮件发送功能 我不确定我的配置是否正确 但这是我的代码 邮件程序 user mailer rb class UserMailer lt ActionMailer Base default from gt
  • 组件测试中的角度单击选择选项

    我已尝试以下操作来尝试单击选择下拉列表中的选项 但没有任何效果 selectEl fixture debugElement query By css dropdown selectEl nativeElement options 3 nat
  • 如何使用博主视频作为 iframe(错误 400)

    我有一个网站 我使用博客中托管的视频作为 iframe 代码如下所示 多年来它运行得很好 但目前它显示一条错误消息 Bad Request Error 400 但现在博主需要令牌才能观看博主上托管的视频 链接现在如下所示 https www
  • 如何使用执行选择器在特定时间段后将函数与参数联系起来

    我是这个 iPhone 应用程序编程的新手 我有一个函数 其参数类型作为结构指针 如下所示 void responce structurePtr someData 我想使用调用这个函数performselector method5秒的时间间
  • ES6 模块如何作为 Node 中的脚本运行?

    ES6 模块如何作为 Node 中的脚本运行 当我尝试这个 shebang 时 我收到一个错误 usr bin env node experimental modules usr bin env node experimental modu