标签: google-closure-compiler

如何使用内联JSDoc指示param是可选的?

根据@param的JSDoc wiki,您可以指示@param是可选的

/**
    @param {String} [name]
*/
function getPerson(name) {
}
Run Code Online (Sandbox Code Playgroud)

并且您可以指示内联使用的参数

function getPerson(/**String*/ name) {
}
Run Code Online (Sandbox Code Playgroud)

我可以将它们组合起来,如下所示,它可以正常工作.

/**
    @param [name]
*/
function getPerson(/**String*/name) {
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有办法在可能的情况下全部内联.

javascript google-closure-compiler jsdoc

107
推荐指数
4
解决办法
4万
查看次数

在Grunt任务中运行命令

我在我的项目中使用Grunt(基于任务的JavaScript项目命令行构建工具).我已经创建了一个自定义标记,我想知道是否可以在其中运行命令.

为了澄清,我正在尝试使用Closure模板,"任务"应该调用jar文件将Soy文件预编译为javascript文件.

我从命令行运行这个jar,但是我想把它设置为一个任务.

javascript continuous-integration templates google-closure-compiler gruntjs

93
推荐指数
5
解决办法
7万
查看次数

如何使用有限的可能值记录jsdoc中的字符串类型

我有一个接受一个字符串参数的函数.此参数只能包含一些已定义的可能值.记录相同内容的最佳方法是什么?应该将shapeType定义为enum或TypeDef还是其他什么?

Shape.prototype.create = function (shapeType) {
    // shapeType can be "rect", "circle" or "ellipse"...
    this.type = shapeType;
};

Shape.prototype.getType = function (shapeType) {
    // shapeType can be "rect", "circle" or "ellipse"...
    return this.type;
};
Run Code Online (Sandbox Code Playgroud)

问题的第二部分shapeType是在文件中不知道可能的值,它定义shapeType为您建议的任何内容.有几个开发人员提供了多个文件,可能会添加可能的值shapeType.

PS:我正在使用 jsdoc3

code-documentation google-closure google-closure-compiler jsdoc

69
推荐指数
4
解决办法
2万
查看次数

"void 0"和"undefined"之间的区别

我正在使用"Closure Compiler",在编译脚本时我会花费以下内容:

编译之前:

// ==ClosureCompiler==
// @compilation_level SIMPLE_OPTIMIZATIONS
// @output_file_name default.js
// @formatting pretty_print,print_input_delimiter
// ==/ClosureCompiler==

var myObj1 = (function() {

  var undefined;   //<----- declare undefined

  this.test = function(value, arg1) {

    var exp = 0;
    arg1 = arg1 == undefined ? true : arg1;  //<----- use declare undefined
    exp = (arg1) ? value * 5 :  value * 10;

    return exp;
  };

  return this;
}).call({});

var myObj2 = (function() {

  this.test = function(value, arg1) {

    var exp = …
Run Code Online (Sandbox Code Playgroud)

javascript google-closure google-closure-compiler

59
推荐指数
4
解决办法
2万
查看次数

50
推荐指数
5
解决办法
2万
查看次数

以这种方式将参数传递给匿名函数的目的是什么?

可能重复:
JavaScript闭包如何工作?

我正在玩Google Closure Compiler,输入随机代码来查看它会做什么.

它重写了我的一个函数,看起来像这样:

(function(msg) { console.log(msg); })("Hello World!");???????
Run Code Online (Sandbox Code Playgroud)

看来它"Hello World"是传递msg给它之前的匿名函数的参数.我看了一会儿,并且认为我在jQuery插件中看到类似的东西:

(function( $ ) {
  ...
})(jQuery); 
Run Code Online (Sandbox Code Playgroud)

在与冲突的范围内,现在对我来说更有意义$.但是将参数传递给这样的匿名函数的主要原因或目的是什么?为什么不简单地将参数定义为函数中的变量?编写这样的函数是否有任何性能或灵活性优势?

javascript jquery google-closure-compiler

48
推荐指数
1
解决办法
1227
查看次数

缩小NodeJS中使用的代码是否有意义?

我很想知道,因为Clojure Compiler和UglifyJS不仅可以优化代码大小而且还可以优化性能(虽然我认为大小是主要优先级),如果我的node.js应用程序被缩小,我的运行速度会更快吗?我知道它可能取决于应用程序,但我一般都会问这个问题.

javascript minify google-closure-compiler node.js uglifyjs

47
推荐指数
3
解决办法
2万
查看次数

如何使用JSDoc记录CoffeeScript源代码?

我有一些用CoffeeScript编写的代码,我想用Google Closure Compiler优化生成的JavaScript,所以这些文件需要用JSDoc记录.

我的问题是,如何记录*.coffee文件以生成包含用于闭包编译器的工作JSDoc的javascript?

还有一个问题:有没有办法在*.coffee中保留单行注释?

javascript google-closure-compiler jsdoc coffeescript

44
推荐指数
4
解决办法
2万
查看次数

在缩小期间排除调试JavaScript代码

我正在研究缩小JavaScript代码的不同方法,包括常规的JSMin,Packer和YUI解决方案.我对新的Google Closure Compiler非常感兴趣,因为它看起来非常强大.

我注意到Dean Edwards打包器有一个功能,可以排除以三个分号开头的代码行.这对于排除调试代码很方便.例如:

;;;     console.log("Starting process");
Run Code Online (Sandbox Code Playgroud)

我花了一些时间来清理我的代码库,并希望添加这样的提示以轻松排除调试代码.为此做准备,我想弄清楚这是否是最佳解决方案,或者是否有其他技术.

因为我还没有选择如何缩小,我想以一种与我最终使用的最小化器兼容的方式清理代码.所以我的问题是:

  1. 使用分号是一种标准技术,还是有其他方法可以做到这一点?

  2. Packer是唯一提供此功能的解决方案吗?

  3. 是否可以采用其他解决方案以这种方式工作,或者他们是否有其他方法来实现这一目标?

  4. 我最终可能会开始使用Closure Compiler.现在有什么我应该做的准备吗?

javascript compression minify google-closure-compiler

40
推荐指数
5
解决办法
2万
查看次数

带有jQuery应用程序的Google Closure Compiler

我有很多时间投入到jquery和用它构建的大型应用程序中.最近我一直在审查Google Closure Library,但此时发现它并不像jquery那样优雅.我相信它可能有一些潜力,并会更多地研究它,但是现在我打算继续使用jQuery作为我的基础框架.

但是,我对Google Closure Compiler印象非常深刻.我希望在我的应用程序的构建过程中开始使用它.遗憾的是,将其用于不遵循标准Google Closure标准的项目并不容易.

在开发基于jquery的项目和使用Google Closure Compiler方面是否有任何最佳实践或良好资源?例如:

  1. 使用它编译jquery和jquery-ui是否有意义,还是应该继续在google CDN上指向这些资源?我确定我的jquery和jquery-ui会更小,因为我没有使用库的所有功能,但是指向CDN会增加文件已经存在于访问者缓存中的机会.

  2. 我的应用程序被拆分成许多文件,每个函数都有一个文件.我想按照特定的顺序将它们组合在一起,并将它们缩小为我网站上每个部分的文件.我想自动化这个过程.

  3. 目前我的项目有一个java后端,并使用Maven构建.将Google Closure Compiler添加到此构建过程中是否有意义?

基本上,我正在寻找任何特定于使用Google Closure Compiler和jQuery的优秀资源.

jquery google-closure google-closure-compiler

38
推荐指数
5
解决办法
2万
查看次数