我正在开始我的第一个大型 javascript 项目!我有一个关于部署的问题。我正在使用对 Web 服务的 ajax 调用。为了进行设置,我有一个静态 JS 文件,其代码如下:
var API_URL_ROOT = 'http://api.example.com/';
var IN_DEVELOPMENT = True;
if (IN_DEVELOPMENT) {
API_URL_ROOT = 'http://localhost.com/api';
}
$.get(API_URL_ROOT)
我正在使用 python/fabric 进行部署。 我想知道是否有任何预构建的工具来处理 javascript 文件的静态分析/操作。, 现在它留给提交者来切换
我正在计划一个部署过程,例如:
- 发出部署命令
- “构建” JS,通过将所有值设置为生产值(即。
IN_DEVELOPMENT = False
) - 缩小 JS
- 将代码部署到生产服务器
我正在考虑只使用 sed 或其他东西来进行IN_DEVELPMENT = False
替换。我查看了一些流行的缩小工具,但似乎没有一个提供这种功能。
我认为这对于应用程序来说是一个非常常见的问题。一般是怎么处理的?任何帮助,将不胜感激。谢谢
我最近从 Mozilla 阅读了一篇关于hackernews 的文章:
在 Mozilla Persona 代码库中,我们经常将难以测试的私有函数暴露给公共接口,清楚地将额外的函数标记为测试 API 的一部分。虽然其他开发者仍然可以调用这些私有函数,但作者的意图很明确。
...
publicFunction: function() {
return "publicFunction can be invoked externally but "
+ privateFunction();
}
// BEGIN TESTING API
,
privateFunction: privateFunction
// END TESTING API
};
// privateFunction is now accessible via the TESTING API
function privateFunction() {
...
可以在构建过程中删除 // BEGIN TESTING API 和 //END TESTING API 伪标记之间的代码以用于生产。
所以其他公司肯定也在这样做。是否有预制工具来促进可以删除此代码的 JS 构建过程?我在 github 上浏览了他们的一些项目,但没有看到任何项目。谢谢