- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在浏览一些 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 }}"
}
我真的不知道以下内容:
&
在 {{}}
中是什么意思 "{{& 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/
我是一名优秀的程序员,十分优秀!