【问题标题】:How to output JS/JSON in NPM Script如何在 NPM 脚本中输出 JS/JSON
【发布时间】:2019-10-04 09:29:53
【问题描述】:

从我的最后一个问题 - npm version "scripts have access to the new version in package.json"

如何从 NPM 脚本输出 JS/JSON。在npm version 之后,我将其写入 JS / JSON 文件,以便在 Angular 中使用导入,就像我在这篇文章底部所写的那样

我尝试了以下这些变体:

"version": "version=$(git tag | head -1); echo \"{version:$version}\" > client/src/app/config-from-npm.json",
  • 在所有情况下都使用单引号 (') 而不是双引号 (")
  • echo '\{version:... - 错误 Unexpected token { in JSON
  • echo '%7Bversion:... - 输出 '%7Bversion ...'
  • echo '%7Bversion:... - 输出 '{version ...'

角度导入版本号

我想要达到的目标以及如何使用它:

 export var config = {
     version: v1.0.0
 }

 ----

 import { config } from './config';

如果我在 JS / JSON 问题中没有解决这个“{”,我只会将版本号写入文件并读入。远不及整洁!

【问题讨论】:

    标签: json npm


    【解决方案1】:

    不要使用 shell 命令伪造 json 字符串,而是使用可识别 json 的工具。

    这是使用jq command line parser 的示例:

    $ echo "v1.0.0" | jq -R '{"version":.}'
    {
       "version": "v1.0.0"
    }
    

    【讨论】:

    • 听起来不错。仍然会坐在package.json / scripts 内,因此会遇到同样的问题。我想这个或我的尝试可以用外部脚本编写(根据stackoverflow.com/a/28047101/1019307 这是可能的)。
    【解决方案2】:

    Yipee,我解决了。 Unicode 字符实体 - https://unicode-table.com/en/#007B

    在“{”有“U+007B”的地方,我使用了“\u007B”。

    甜!

    【讨论】:

      猜你喜欢
      • 2020-04-12
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 2016-01-03
      • 1970-01-01
      相关资源
      最近更新 更多