Javascript 如何在构建时更改客户端JS中的URL?

Javascript 如何在构建时更改客户端JS中的URL?,javascript,node.js,build,gulp,Javascript,Node.js,Build,Gulp,我有一个JS文件,由Node.JS服务器提供给web浏览器 在Dev中运行时,我希望客户端JS将数据发送到localhost,这样我就可以将负载记录到我的local node.JS服务器 但是当我们部署到生产环境时,我当然希望客户端JS文件将数据从浏览器发送到我的生产URL 现在,我一直在手动修改得到服务的JS文件中的URL,在执行Gulp构建之前在localhost和公共URL之间切换,但我知道这不是正确的方法,并且容易出现“哎哟,我忘了”的问题 正确的方法是什么?还是最佳实践?有什么我应该用

我有一个JS文件,由Node.JS服务器提供给web浏览器

在Dev中运行时,我希望客户端JS将数据发送到localhost,这样我就可以将负载记录到我的local node.JS服务器

但是当我们部署到生产环境时,我当然希望客户端JS文件将数据从浏览器发送到我的生产URL

现在,我一直在手动修改得到服务的JS文件中的URL,在执行Gulp构建之前在localhost和公共URL之间切换,但我知道这不是正确的方法,并且容易出现“哎哟,我忘了”的问题


正确的方法是什么?还是最佳实践?有什么我应该用的大口包吗

如果您现在还没有解决这个问题,您可以使用。例如,假设您有一个构建任务,该任务读取
/src
,缩小JavaScript并将其输出到
/dist
。您可以通过管道将JavaScript源代码传输到
replace()
(第一个参数是开发URL,第二个参数是生产URL):

如果您有一个执行简单jQuery AJAX请求的文件
/src/script.js
,请参见下面的前后效果

之前

$.get('http://localhost:3000/api', function (data) {
    console.log(data);
});
之后(忽略缩小)


在你大口喝之前,你特别修改了什么?您正在运行节点服务器吗?静态网站?抱歉-措词不当。我更新了这个问题。我做了一些研究,似乎没有一个很好的解决办法。最后,我决定更改URL的位置。幸运的是,在我的例子中,这个JS是从标记调用的。因此,我在标记中将URL设置为全局变量的一部分,然后让JS文件引用全局变量。现在URL有效负载设置为两个,由调用的HTML/JS控制。你的意思是你想在我提供的JS文件中获得???@al_kasih_empatix编号。生成一些数据并将其发送到服务器。我想设置一个Var,它保存浏览器发送数据的URL,在dev和production中使用两个不同的URL。我不想在构建项目之前一直手动更改它。
$.get('http://localhost:3000/api', function (data) {
    console.log(data);
});
$.get('http://www.whatever.com/api', function (data) {
    console.log(data);
});