3

在使用 Web 应用程序时,我经常有专门为生产/服务器与本地环境设计的代码。

我还经常需要停用特定功能(即 js、ruby、rails、java 等)。

我面临的问题是,有时在发布新版本时我会错过激活或停用这些功能。

理想的事情(我认为)是在部署到服务器之前运行类似的开/关功能。所以你不会错过任何东西。

例子。

我在开发时注释掉了一个函数。

JS:

// foobar() FOR PRODUCTION

Ruby On Rails (production.rb):

# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # FOR PRODUCTION

后者是当我需要使用生产设置测试本地的东西但因为我没有安装特定的环境(nginx、appache)我不能使用它的功能时。

我使用 Sublime Text 2,3,如果它具有定义特定功能/代码块以取消注释/注释的功能,那就太好了。

你如何工作,这样你就不会错过任何东西?

4

1 回答 1

6

这个问题根本不是特定于 Sublime Text 或任何文本编辑器,而是一个通用问题如何预处理和调试(JavaScript)源代码。

首先,最简单的方法是在您的代码库中使用某种全局调试标志。

  window.DEBUG = true;

  function log(a, b, c, d) {
       if(DEBUG) {
           console.log(a, b, c, d);
       }
  } 

  if(DEBUG) {
      // Do dev stuff
  } else {
     // Do produection stuff
  }

  log("foobar") // Does not need to be wrapper, as log() itself is functional only in debug mode

您可以根据您的 URL 设置调试标志:

 if(window.location.href.indexOf("localhost") >= 0) {
     window.DEBUG = true;
 } 

当您将 JavaScript 部署到生产环境时,通常会通过最小化和捆绑工具来运行它。一种流行的工具是UglifyJS 2,它具有不断消除的特点。使用此工具运行和部署您的 JavaScript 代码时,if(DEBUG) { }您的部分代码会被删除。

您可以使用 Project > Build scripts 将任何工具连接到 Sublime Text。

对于服务器端代码,您只需要根据您的环境设置调试标志。每个框架(Ruby on rails)都有自己的方法,您需要在框架特定问题中询问具体细节。

于 2013-09-02T21:03:41.637 回答