首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/变量之间的生产/部署

/变量之间的生产/部署
EN

Stack Overflow用户
提问于 2013-02-02 18:13:29
回答 1查看 178关注 0票数 1

我开始了我的第一个大javascript项目!我有个关于部署的问题。我正在使用对webservice的ajax调用。为了设置这一点,我有一个静态JS文件,其代码如下:

代码语言:javascript
复制
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文件的静态分析/操作。,现在它只剩下提交者了。

我正在计划一个部署过程,比如:

  1. 发出部署命令
  2. “构建”JS,通过将所有值设置为生产值(即。IN_DEVELOPMENT = False)
  3. 缩小JS
  4. 将代码部署到生产服务器

我正在考虑仅仅使用sed或者做一些替换IN_DEVELPMENT = False的事情。我看过一些流行的小型化工具,但似乎没有提供这种功能。

我认为这对于应用程序来说是一个非常常见的问题。通常是怎么处理的?任何帮助都将不胜感激。谢谢

最近,我在mozilla的黑客新闻上看到了一个文章

在Mozilla代码库中,我们经常向公共接口公开很难测试私有函数,显然将额外的函数标记为测试API的一部分。虽然其他开发人员仍然能够调用这些私有函数,但作者的意图是明确的。

代码语言:javascript
复制
...
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上的一些项目,但没有看到任何项目。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-06 17:45:26

我们用的是道场

在dojo中,您可以对js的构建版本使用条件排除,以便排除您在build中不想要的部分代码。希望这能有所帮助。

例:

代码语言:javascript
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14664916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档