Articles of google closure compiler

如何用ClosureCompiler.js加载npm包

我想试试Google Closure Compiler ,所以我用npm distribution closurecompiler.js来使用它。 我正在使用闭包编译器traspile我es6的代码es5。 这是不是一个select更换为babel transpiler。 所以我从一些基本的例子开始,那些工作正常,但我坚持导入一些npm包。 这是我的依赖关系,从我的package.json文件 "dependencies": { "body-parser": "~1.5.2", "express": "~4.7.2", "method-override": "~2.1.2", "mongoose": "~3.6.2", "morgan": "~1.2.2", "vue": "^1.0.16", "vue-resource": "^0.7.0" } 运行require命令它是所有工作,但如果我运行 import express from 'express' 我得到了错误 server.js:4: ERROR – Failed to load module "express" import express from 'express' ^ 这个命令是用来做转储的 ccjs config/*.js server.js –externs=node > dist/server.js && […]

用grunt闭包编译器生成源图?

有没有办法用grunt闭包编译器生成源映射? 我尝试了grunt-closure-compiler和grunt-closure-tools,但似乎无法得到它来生成源映射文件。 这是我的设置: 在这里我尝试了内部options和外部options ,都使用true或path/to/src.map 。 我无法find这个文件。 'closure-compiler': { lib : { closurePath: 'closure-compiler', js: 'path/to/src.js', jsOutputFile: 'path/to/output.js', maxBuffer: 10000, // sourceMap: true / 'path/to/src.map' options: { compilation_level: 'ADVANCED_OPTIMIZATIONS', language_in: 'ECMASCRIPT5', externs: ['externs/*.js'], // sourceMap: true / 'path/to/src.map' } } }, 在这里我跟着文档,但不能得到它的工作。 closureCompiler: { options: { compilerFile: 'closure-compiler/build/compiler.jar', create_source_map: 'path/to/src.map', compilation_level: 'ADVANCED_OPTIMIZATIONS', externs: ['externs/*.js'] }, […]

CommonJS导出函数上的Closure编译器检查types?

我有以下文件; 名为test.js (入口点)的第一个文件: 'use strict'; var include = require('./test.include'); console.log(include('123', 2)); 第二个文件名为test.include.js : 'use strict'; /** * Calculates the sum of a and b. * @param {number} a * @param {number} b * @return {number} */ module.exports = function(a, b) { return a + b; } 现在我用Closure Compiler编译这个项目: java -jar compiler.jar ^ –compilation_level=ADVANCED_OPTIMIZATIONS ^ –common_js_entry_module=test.js […]

使用Node.js进行闭包编译

我想编译这个Node.js模块(仅用于types检查) var externalRequire = require; var Pool = externalRequire('pg-pool'); var config = {}; var pool = new Pool(config); module.exports = {}; 用这些Closure编译器的选项: java -jar compiler.jar –js_output_file output.js –use_types_for_optimization –warning_level VERBOSE –jscomp_warning=reportUnknownTypes –jscomp_warning=checkTypes –compilation_level ADVANCED_OPTIMIZATIONS –process_common_js_modules –externs externs.js –js src.js externs.js只包含一个定义: /** * @param name * @return {*} */ var require = function(name) {} 问题是,我不知道如何解释Closure编译器,“池”不是一个对象的实例,但types。 src.js:5: […]

封闭编译器-js和grunt

Tl; dr:我想在使用闭包编译器编译我的JS时使用npm而不是java。 大家好, 所以显然,闭包编译器正在摆脱对Java的依赖,而是使用JS( https://github.com/google/closure-compiler-js )。 我和你们的问题是,如果有任何使用Grunt的方法,或者如果我需要使用Gulp作为构build系统? 目前他们没有在上面粘贴的链接上提及,我在其他地方也没有看到。 我知道,依赖于Java的版本可以使用grunt,但我宁愿不必安装Java(在这个项目中有多个使用C#.NET 4.6的开发人员,我认为他们都对Java过敏,因为他们当我提到它时,所有人都嘶嘶作响)。

缩小仅由Node读取的源代码是否有任何好处?

在NodeJS应用程序中,使用缩小的源代码服务器端有什么好处吗? 我能想到的唯一好处是,较小的JS文件可能会从磁盘稍快加载。 但这似乎微不足道,因为它只会影响启动时间。 那么,在将其部署到我们的生产服务器之前,是否有任何理由通过uglify或闭包编译器来处理我们的源代码?

你如何在Closure Compiler中将node_modules定义为extern?

我有一个Node.js项目,我想用Closure编译器进行编译。 我不希望它运行在浏览器/使用browserify。 我主要希望types检查的效用。 我最初得到编译器使用以下正确工作: java -jar compiler.jar -W VERBOSE –language_in ECMASCRIPT5_STRICT –externs closure-externs.js –js="lib/**.js" 其中closure-externs.js手动定义了我从Node.js中使用的variables和函数: // closure-externs.js /** @constructor */function Buffer(something){} function require(path){} var process = {}; […] 事实certificate,这只是通过运气好运。 在文件之间没有依赖关系跟踪,所以你可以有返回types{Foo} ,编译器会抱怨它不存在(取决于机器,取决于编译顺序)。 然后我发现我所做的一切都是错误的,应该使用–process_common_js_modules这样编译器就会在require("foo")地方执行依赖关系跟踪。 我目前正在调用编译器像这样: java -jar compiler.jar -W VERBOSE –language_in ECMASCRIPT5_STRICT –externs externs/fs.js –js="lib/**.js" –process_common_js_modules –common_js_entry_module app.js 但是这是失败的: ERROR – required entry point "module$crypto" never provided […]

获得闭包编译器和Node.js发挥很好

有没有使用node.js和闭包编译器(简称CC)的项目? CC的官方build议是一起编译应用程序的所有代码,但是当我编译一些包含require("./MyLib.js")简单node.js代码时,该行直接放入输出中,在这方面没有任何意义。 我看到几个选项: 将整个应用程序编码为单个文件。 通过避免它解决了这个问题,但是对维护不利。 假设所有文件在执行之前都会被连接起来。 这又避免了这个问题,但是使得实现一个未编译的debugging模式变得更加困难。 我希望CC能够“理解”node.js require()函数,但是如果不编辑编译器本身,可能无法做到这一点。

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

我想知道,因为Clojure编译器和UglifyJS不仅优化代码的大小,而且性能(尽pipe我认为大小是主要优先级),如果我的node.js应用程序被缩小,它会运行得更快吗? 我知道它可能取决于应用程序,但我一般问这个。