我部署了 Node.js 的 0.6 版本,其中为各种项目安装了大量软件包。
有没有一种直接的方法来检查使用 NPM 安装的所有软件包,看看它们是否支持 Node.js v 0.8.x?
我可以看到 package.json 文件应该说明它们适用的 Node 版本,尽管我猜很多人不会包含这个 - 所以我真的只对那些说它们绝对不兼容 Node v 0.8 的包感兴趣。X
例如,他们在 package.json 中有这样的东西:
"engines": {
"node": "<0.8.0"
},
Run Code Online (Sandbox Code Playgroud)
或者
"engines": {
"node": "=0.6.*"
},
Run Code Online (Sandbox Code Playgroud)
我只想要一个不兼容的包的简单列表。
使用 Azure 自动化开发 PowerShell 脚本可能会非常缓慢。这可以通过使用 PowerShell ISE 插件来帮助实现,该插件允许您在本地测试运行脚本。
但是,在本地运行与在 Azure 自动化中运行时,某些事情不可避免地会有所不同。例如文件路径。
检测脚本当前运行的环境的正确方法是什么?
目前我定义了一个变量资产,我只保留本地而不上传。然后我可以执行以下操作:
# Check if we are running locally - NOTE: Do not upload the runningLocally variable! Keep it local only
if (Get-AutomationVariable -Name 'runningLocally') {
# We are running locally
} else {
# We are running in Azure Automation
}
Run Code Online (Sandbox Code Playgroud)
但这似乎相当笨拙且容易出错。我正在寻找一种更强大和可靠的方法。
我发现了一些额外的方法。AA运行时的机器名和用户名都是“客户端”,这似乎是一个更健壮的方法?
我需要能够使用 JSONata 将元素添加到任意复杂的对象。
我事先并不知道对象中的所有元素。
例如,假设我想添加
"newElement": { "a": 1, "b": 2 }
Run Code Online (Sandbox Code Playgroud)
对于一个看起来像这样的对象:
{ "xx": "An", "yy": "Example", "zz": 1 }
Run Code Online (Sandbox Code Playgroud)
但它可能有任意数量或混合的其他元素。
我可以替换整个对象,但我不知道如何添加它。