我开始了我的第一个大javascript项目!我有个关于部署的问题。我正在使用对webservice的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进行部署。I想知道是否有任何预先构建的工具来处理javascript文件的静态分析/操作。,现在它只剩下提交者了。
我正在计划一个部署过程,比如:
IN_DEVELOPMENT = False)我正在考虑仅仅使用sed或者做一些替换IN_DEVELPMENT = False的事情。我看过一些流行的小型化工具,但似乎没有提供这种功能。
我认为这对于应用程序来说是一个非常常见的问题。通常是怎么处理的?任何帮助都将不胜感激。谢谢
最近,我在mozilla的黑客新闻上看到了一个文章:
在Mozilla代码库中,我们经常向公共接口公开很难测试私有函数,显然将额外的函数标记为测试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测试API和//END测试API之间的代码伪标记,用于生产。
所以其他公司肯定也在这么做。是否有预先制作的工具,以方便JS构建过程,可以删除此代码?我浏览了他们在github上的一些项目,但没有看到任何项目。谢谢
发布于 2013-02-06 17:45:26
我们用的是道场
在dojo中,您可以对js的构建版本使用条件排除,以便排除您在build中不想要的部分代码。希望这能有所帮助。
例:
var API_URL_ROOT = 'http://api.example.com/';
//>>excludeStart("dev",!pragmas.dev);
var IN_DEVELOPMENT = True;
//>>excludeEnd("dev");
if (IN_DEVELOPMENT) {
API_URL_ROOT = 'http://localhost.com/api';
}
$.get(API_URL_ROOT)https://stackoverflow.com/questions/14664916
复制相似问题