读取环境变量时,JSON.parse / stringify的用途是什么?

丸子

Pete Hunt的Webpack中,如何使用此代码:

// definePlugin takes raw strings and inserts them, so you can put strings of JS if you want.
var definePlugin = new webpack.DefinePlugin({
  __DEV__: JSON.stringify(JSON.parse(process.env.BUILD_DEV || 'true')),
  __PRERELEASE__: JSON.stringify(JSON.parse(process.env.BUILD_PRERELEASE || 'false'))
});

JSON.stringify(JSON.parse(..))这里需要什么JSON字符串化/解析对于克隆对象以避免突变非常有用,但是它process.env.BUILD_DEV是(并且只能是?)字符串。那么,为什么要使用它呢?

jfriend00

这是奇怪的代码。首先,克隆机制是:

JSON.parse(JSON.stringify(obj))

但是,您的代码是这样的:

JSON.stringify(JSON.parse(str))

因此,似乎正在尝试以困难的方式克隆JSON字符串。这很奇怪,因为字符串在Javascript中是不可变的,因此对同一字符串进行多次引用不会有危险。基础字符串不能更改。

我要说的是,这些额外的代码似乎是多余的和不必要的,除非以某种方式只是强制将valueprocess.env.BUILD_DEV变为可以JSON.parse()毫无例外地接受的东西,这似乎是测试该值的一种非常奇怪的方式。如果这是目的,则代码将更加清晰,只需显式地检查预期的法律价值,而不是像这样的未记录的副作用测试。另外,我们在这里看不到任何异常处理程序来处理不良数据,因此似乎不太可能是造成这种情况的原因。

我猜还有一个原因是将字符串标准化为规范格式,因为调用JSON.stringify()解析结果将保证统一的字符串,无论原始字符串中可能有哪些转义字符。似乎没有任何评论为什么这样做是一种奇怪的做法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

读取环境变量时,JSON.parse / stringify的用途是什么?

来自分类Dev

从属性文件读取时,为什么环境变量始终为null?

来自分类Dev

是什么设置$ SHELL环境变量?

来自分类Dev

全新安装Windows 7时默认的PATH环境变量设置是什么

来自分类Dev

将 private_key 用作环境变量时,其正确格式是什么?

来自分类Dev

当我清楚地看到环境变量存在时,为什么我的构建抱怨环境变量丢失了?

来自分类Dev

什么是$ DISPLAY环境变量?

来自分类Dev

什么是环境变量`locktt`?

来自分类Dev

什么是$ DISPLAY环境变量?

来自分类Dev

Go中命名返回变量的预期用途是什么?

来自分类Dev

Rails模型类中实例变量的用途是什么

来自分类Dev

此代码段中变量 `tmp` 的用途是什么?

来自分类Dev

程序结束时scanf_s()的用途是什么?

来自分类Dev

为什么JSON.parse(JSON.stringify())失败并带有一个简单的字典?

来自分类Dev

为什么我需要编写JSON.parse(JSON.stringify(data))?

来自分类Dev

为什么JSON.parse(JSON.stringify())失败并带有一个简单的字典?

来自分类Dev

JavaScript中JSON.parse()的复杂性是什么?

来自分类Dev

client_secrets.json文件的用途是什么?

来自分类Dev

决定显示语言的正确环境变量是什么?

来自分类Dev

__PYVENV_LAUNCHER__环境变量是什么意思?

来自分类Dev

获取UCM活动更改集的环境变量是什么?

来自分类Dev

JAVA_HOME环境变量的意义是什么

来自分类Dev

在python中“绑定”环境变量的安全方法是什么?

来自分类Dev

环境变量asl.log的目的是什么?

来自分类Dev

环境变量类型之间的区别是什么

来自分类Dev

环境变量到底是什么?

来自分类Dev

决定显示语言的正确环境变量是什么?

来自分类Dev

Windows的PATHEXT环境变量的默认值是什么?

来自分类Dev

允许操作环境变量的工具的名称是什么?

Related 相关文章

  1. 1

    读取环境变量时,JSON.parse / stringify的用途是什么?

  2. 2

    从属性文件读取时,为什么环境变量始终为null?

  3. 3

    是什么设置$ SHELL环境变量?

  4. 4

    全新安装Windows 7时默认的PATH环境变量设置是什么

  5. 5

    将 private_key 用作环境变量时,其正确格式是什么?

  6. 6

    当我清楚地看到环境变量存在时,为什么我的构建抱怨环境变量丢失了?

  7. 7

    什么是$ DISPLAY环境变量?

  8. 8

    什么是环境变量`locktt`?

  9. 9

    什么是$ DISPLAY环境变量?

  10. 10

    Go中命名返回变量的预期用途是什么?

  11. 11

    Rails模型类中实例变量的用途是什么

  12. 12

    此代码段中变量 `tmp` 的用途是什么?

  13. 13

    程序结束时scanf_s()的用途是什么?

  14. 14

    为什么JSON.parse(JSON.stringify())失败并带有一个简单的字典?

  15. 15

    为什么我需要编写JSON.parse(JSON.stringify(data))?

  16. 16

    为什么JSON.parse(JSON.stringify())失败并带有一个简单的字典?

  17. 17

    JavaScript中JSON.parse()的复杂性是什么?

  18. 18

    client_secrets.json文件的用途是什么?

  19. 19

    决定显示语言的正确环境变量是什么?

  20. 20

    __PYVENV_LAUNCHER__环境变量是什么意思?

  21. 21

    获取UCM活动更改集的环境变量是什么?

  22. 22

    JAVA_HOME环境变量的意义是什么

  23. 23

    在python中“绑定”环境变量的安全方法是什么?

  24. 24

    环境变量asl.log的目的是什么?

  25. 25

    环境变量类型之间的区别是什么

  26. 26

    环境变量到底是什么?

  27. 27

    决定显示语言的正确环境变量是什么?

  28. 28

    Windows的PATHEXT环境变量的默认值是什么?

  29. 29

    允许操作环境变量的工具的名称是什么?

热门标签

归档