我有一个coffeescript文件,其中包含我希望其他脚本可以使用的代码,但我也希望它能够作为一个独立的脚本运行。
确定另一个脚本是否需要它直接运行的最可靠方法是什么?
e.g。 要求( “./ myScript.coffee”) VS 咖啡./myScript.coffee
答案 0 :(得分:1)
这是节点吗?如果有的话这里有两个选项
A)使用调用堆栈
stack = new Error().stack
B)使用require.cache
检查您的脚本是否在require.cache列表中。例如,here是一个单元测试,它在当前的require.cache上查找特定的脚本,并将其删除
for file in require.cache.keys()
if file.contains(['node/server.coffee']) or file.contains(['node-cov/server.coffee'])
pathToApp = file
break
require.cache[pathToApp].assert_Is_Object()
delete require.cache[pathToApp]
app = require '../server'
答案 1 :(得分:0)
我目前的解决方案是在“独立脚本执行”之前包含此行逻辑检查
if process.argv[1].toString().indexOf('myScript.coffee') != -1
# Standalone script code here