如何从 shell 脚本调用 deno?
How do I invoke deno from a shell script?
我有一个脚本想要 运行...可能是这样的:
#!/usr/bin/env deno
console.log('hello world');
shebang 部分令人困惑。当我按照上面的方式使用文件名 dev
时,我得到:
error: Found argument './dev' which wasn't expected, or isn't valid in this context
当我尝试将 shebang 更改为 #!/usr/bin/env deno run
我明白了
/usr/bin/env: ‘deno run’: No such file or directory
关于如何实现这一点有什么想法吗?
为了通过 env
将命令选项传递给 deno
,您需要 env.-S
参数。
例如,以下是您应该使用的最小 shebang,用于使用 Deno 自运行创建脚本。
#!/usr/bin/env -S deno run
复杂示例:
以下 script/shebang 将尽可能安静地 运行 Deno,具有所有权限,并假设脚本文件旁边有一个 import_map.json
文件。
#!/usr/bin/env -S deno -q run --allow-all --import-map="${_}/../import_map.json"
// get file and directory name
const __filename = import.meta.url.replace("file://", "");
const __dirname = __filename.split("/").slice(0, -1).join("/");
带有 __filename
和 __dirname
的行将为您提供类似于 Node 执行的变量。
脚本安装程序
Deno 还提供了一种方便的方法,用于在配置的分发位置安装脚本及其权限和依赖项。
参见:Deno Manual - Script installer
独立可执行文件
从 Deno 1.6 开始,您现在也可以从脚本构建独立的可执行文件。
Deno 1.6.0
可以编译成独立的二进制/可执行文件,不需要自定义 Shebang:
$ deno compile --unstable main.js
# or add custom output path
$ deno compile --unstable main.js -o /my/path/main
# both create ./main executable (e.g. on Linux)
# execute script directly
$ ./main
更多信息
- feat: deno compile #8539(公关)
- Deno v1.6.0(发布信息)
- "deno compile" into executable #986(功能请求)
我有一个脚本想要 运行...可能是这样的:
#!/usr/bin/env deno
console.log('hello world');
shebang 部分令人困惑。当我按照上面的方式使用文件名 dev
时,我得到:
error: Found argument './dev' which wasn't expected, or isn't valid in this context
当我尝试将 shebang 更改为 #!/usr/bin/env deno run
我明白了
/usr/bin/env: ‘deno run’: No such file or directory
关于如何实现这一点有什么想法吗?
为了通过 env
将命令选项传递给 deno
,您需要 env.-S
参数。
例如,以下是您应该使用的最小 shebang,用于使用 Deno 自运行创建脚本。
#!/usr/bin/env -S deno run
复杂示例:
以下 script/shebang 将尽可能安静地 运行 Deno,具有所有权限,并假设脚本文件旁边有一个 import_map.json
文件。
#!/usr/bin/env -S deno -q run --allow-all --import-map="${_}/../import_map.json"
// get file and directory name
const __filename = import.meta.url.replace("file://", "");
const __dirname = __filename.split("/").slice(0, -1).join("/");
带有 __filename
和 __dirname
的行将为您提供类似于 Node 执行的变量。
脚本安装程序
Deno 还提供了一种方便的方法,用于在配置的分发位置安装脚本及其权限和依赖项。
参见:Deno Manual - Script installer
独立可执行文件
从 Deno 1.6 开始,您现在也可以从脚本构建独立的可执行文件。
Deno 1.6.0
可以编译成独立的二进制/可执行文件,不需要自定义 Shebang:
$ deno compile --unstable main.js
# or add custom output path
$ deno compile --unstable main.js -o /my/path/main
# both create ./main executable (e.g. on Linux)
# execute script directly
$ ./main
更多信息
- feat: deno compile #8539(公关)
- Deno v1.6.0(发布信息)
- "deno compile" into executable #986(功能请求)