Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 覆盖或更改package.json“;主页「;价值_Javascript_Json_Reactjs - Fatal编程技术网

Javascript 覆盖或更改package.json“;主页「;价值

Javascript 覆盖或更改package.json“;主页「;价值,javascript,json,reactjs,Javascript,Json,Reactjs,我当前正试图从另一个文件覆盖或更改我的package.json中的值。基本上,package.json有一个“homepage”值,在我运行npm run build时生成。我希望能够从我的config.js或config.production.json文件中更改该值。我希望我的环境值都在配置文件中,以便更容易修改。但是,当我运行npm run build时,它仍然从package.json加载我的主页值 package.json { "homepage": "/company/portal

我当前正试图从另一个文件覆盖或更改我的package.json中的值。基本上,package.json有一个“homepage”值,在我运行
npm run build
时生成。我希望能够从我的config.jsconfig.production.json文件中更改该值。我希望我的环境值都在配置文件中,以便更容易修改。但是,当我运行
npm run build
时,它仍然从package.json加载我的主页值

package.json

{
  "homepage": "/company/portal"
}
config.production.json

{
  "configPath": "/newCompany/portal"
}

感谢您的帮助

如果您的意思是通常如何通过浏览器中的脚本在客户端计算机中编写文件,那么这并不是一件容易的事情,而且在0之前实现它也会遇到许多跨浏览器的问题

你可以试着看看这个看起来很不错的图书馆:

您还可以考虑向node.js应用程序启动AJAX请求,例如,该应用程序将在您的系统上轻松编写文件或提供下载,或者通常向服务器端发送请求,该服务器端将提供要下载到客户端的文件

但是,根据您解释的案例,您只需要更改系统中的配置文件,因此考虑到您使用的是node.js,最简单的方法是使用node.js

通常强烈反对将env变量值放入JSON文件中。看起来您可以使事情井然有序,但很可能您的代码会被推送到某个地方,因此打开JSON文件,任何人都可以看到您的所有env变量值。这不是一件好事

在我看来,您应该考虑编写构建脚本,以便在调用时获取参数,然后调用传递参数的构建。例如:

npm build --production
npm build --development
根据参数,您将动态设置正确的配置


我希望这有助于回答非常有趣的问题。我以后可能会调查此事。现在,我的解决办法是给homepage这个值“.”,并在我的配置文件中提供一个新的路径。你能详细说明为什么将路径放在Json文件中不安全吗?在Js文件中更好吗?为什么?ThanksNope抱歉,我的意思是,对于env变量值来说,这通常是不好的。但是,正如我在上面解释的,它特别涉及安全问题。但是,如果您只想存储路径,这一点都不成问题。我仍然建议您提供定制的构建传递参数,您可能需要CI/CD,在那里您可以简单地触发构建传递参数。例如,您可能还需要在生产和开发之间进行其他更改。我希望能有所帮助,所以我会记住这个解决方案。到目前为止,只有我的网络信息和路径在我的json文件中。谢谢你澄清这一点!