gpt4 book ai didi

json - Electron : What does curly braces '{}' mean in package json

转载 作者:行者123 更新时间:2023-12-01 00:46:52 26 4
gpt4 key购买 nike

我正在浏览一些 electron package.json 示例,其中我发现了一些 interpolations,如下所示:

"updater": {
"urls": {
"darwin": "{{& SQUIRREL_UPDATES_URL }}/update/%CHANNEL%/darwin?version=%CURRENT_VERSION%",
"win32": "{{& SQUIRREL_UPDATES_URL }}/update/%CHANNEL%/win32",
"linux": "{{& SQUIRREL_UPDATES_URL }}/update/%CHANNEL%/linux"
}
}

"piwik": {
"serverUrl": "{{& PIWIK_SERVER_URL }}"
},
"sentry": {
"dsn": "{{& SENTRY_DSN_PRIVATE }}"
}

我真的不知道以下内容:

  1. 这个{{}}在json中是什么意思
  2. 这些变量存在于何处
  3. &{{}} 中是什么意思 "{{& SENTRY_DSN_PRIVATE }}"

如果有人能解释一下那就太好了。非常感谢。

最佳答案

我猜你说的是 Whatsie它是 package.json .

如果您查看位于文件 tasks/compile.coffee 中的 Gulp 任务之一,您将能够看到这些行(在 CoffeeScript 中):

# Move package.json
gulp.task 'compile:' + dist + ':package', ['clean:build:' + dist], ->
gulp.src './src/package.json'
.pipe mustache process.env
.pipe gulp.dest dir

这里是实际的 package.json正在传递给 mustache模板引擎 - 它接收一个模板作为第一个参数(package.json 在这里充当模板)和一个要插入模板的数据作为第二个参数 - process.env

作为package.json充当 mustache 的模板, 你可以使用 mustache其中的语法。大括号 {{}} 是它的一部分,它们用作占位符,在编译模板时将被实际数据替换。在mustache docs你也可以找到一行:

You can also use & to unescape a variable: {{& name}}

所以{{& name}}是为了防止值被转义。否则,如果你不使用 & 并且输出的值有一些危险字符,它们将被更安全的字符替换(最初是为了防止模板中的 XSS),因此它会转换初始值,这并不总是你想要的。在这种情况下,作者希望保留原始值。

回到 process.env - 它是一个可以访问 environment variables 的对象在 Node.JS 中。存储库中有一个文件 .env-example以开发人员必须设置的环境变量为例,以使应用程序在不同的环境中以不同的方式工作(例如在本地机器或 CI 服务器上)。此文件中的一些变量的名称是在 package.json 中使用的名称作为模板占位符 - 我猜应用程序的作者使用所有这些来简化不同环境的构建过程。

关于json - Electron : What does curly braces '{}' mean in package json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37249984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com