为什么我不能跑node -e ".load ./script.js"?
$ node -e '.load ./script.js'
[eval]:1
.load
^
SyntaxError: Unexpected token .
at Object.exports.runInThisContext (vm.js:53:16)
at Object.<anonymous> ([eval]-wrapper:6:22)
at Module._compile (module.js:410:26)
at node.js:578:27
at nextTickCallbackWith0Args (node.js:419:9)
at process._tickCallback (node.js:348:13)
Run Code Online (Sandbox Code Playgroud)
我尝试.用 a转义,\但这也不起作用。
该-e标志告诉节点在提供的字符串上运行 eval。这意味着它以纯 javascript 的方式运行它。.load是一个 REPL 命令,这意味着它不是 javascript。-e也不运行 REPL,所以不会做你想做的。
如果你只想从命令行运行脚本,你可以这样做 node path/to/script.js
要运行加载脚本的单行程序,您可以执行node -e "require('path/to/script.js')",但这只会加载脚本,然后退出。node 将返回,并且似乎什么也不会发生。可能有几种方法可以使用预加载的数据运行 REPL,但我喜欢这样做:
node -e "const repl = require('repl'); repl.start().context.script = require('path/to/script.js')"
Run Code Online (Sandbox Code Playgroud)
我实际上在一个用于测试库的批处理脚本中(因为我正在运行 Windows)。我只需要传入我想要包含的任何脚本,它就会在加载它们的情况下为我启动 REPL。
| 归档时间: |
|
| 查看次数: |
4610 次 |
| 最近记录: |