google-closure-compiler基本流程示例
google-closure-compiler basic process example
任何人都可以在 google-closure-compiler 基本过程中添加一个片段,我正在通过 js 代码尝试失败。
我正在使用官方 npm 页面中的示例片段。
当我 运行 它时,似乎发生了一些事情,但没有创建输出文件。
我的代码:
const ClosureCompiler = require('google-closure-compiler').jsCompiler;
console.log(ClosureCompiler.CONTRIB_PATH); // absolute path to the contrib folder which contains externs
const closureCompiler = new ClosureCompiler({
compilation_level: 'ADVANCED'
});
const compilerProcess = closureCompiler.run([{
path: './',
src: 'a.js',
sourceMap: null // optional input source map
}], (exitCode, stdOut, stdErr) => {
console.log(stdOut)
//compilation complete
});
在你已有的基础上,我只做了一些改变:
1) src
属性不是路径,它是文件:在本例中使用 fs.readFileSync.
读取文件
2) 输出在回调中返回:您需要将其写入磁盘。
文件:
index.js
const ClosureCompiler = require('google-closure-compiler').jsCompiler;
const {writeFile, readFileSync} = require('fs');
const closureCompiler = new ClosureCompiler({
compilation_level: 'ADVANCED'
});
let src = readFileSync('a.js', 'UTF-8');
const compilerProcess = closureCompiler.run([{
path: './',
src: src,
sourceMap: null
}], (exitCode, stdOut, stdErr) => {
stdOut.map((fileResults) => {
writeFile(fileResults.path, fileResults.src, () => {});
});
});
a.js
console.log('hello world!')
compiled.js
console.log("hello world!");
好的,很显然,如果不使用 'fs' 库就无法创建文件。
根据"closure-compiler-js.js",当"run"完成时,回调仅记录结果。
https://github.com/google/closure-compiler-npm/blob/master/packages/google-closure-compiler/lib/node/closure-compiler-js.js
这很有趣,因为 'closure-compiler-npm' 确实使用 'fs' 来读取文件内容,但它没有任何 'write-file' 机制。
甚至在官方 'cli.js' 上也使用了 'fs' 库:
https://github.com/google/closure-compiler-npm/blob/master/packages/google-closure-compiler/cli.js
const ClosureCompiler = require('google-closure-compiler').jsCompiler;
const { writeFile } = require('fs');
const closureCompiler = new ClosureCompiler({
js:['a.js','a1.js'],
js_output_file: 'out.js'
});
const compilerProcess = closureCompiler.run([{
path: './',
}], (exitCode, stdOut, stdErr) => {
writeFile(stdOut[0].path, stdOut[0].src,()=>{});
});
任何人都可以在 google-closure-compiler 基本过程中添加一个片段,我正在通过 js 代码尝试失败。 我正在使用官方 npm 页面中的示例片段。 当我 运行 它时,似乎发生了一些事情,但没有创建输出文件。
我的代码:
const ClosureCompiler = require('google-closure-compiler').jsCompiler;
console.log(ClosureCompiler.CONTRIB_PATH); // absolute path to the contrib folder which contains externs
const closureCompiler = new ClosureCompiler({
compilation_level: 'ADVANCED'
});
const compilerProcess = closureCompiler.run([{
path: './',
src: 'a.js',
sourceMap: null // optional input source map
}], (exitCode, stdOut, stdErr) => {
console.log(stdOut)
//compilation complete
});
在你已有的基础上,我只做了一些改变:
1) src
属性不是路径,它是文件:在本例中使用 fs.readFileSync.
2) 输出在回调中返回:您需要将其写入磁盘。
文件:
index.js
const ClosureCompiler = require('google-closure-compiler').jsCompiler;
const {writeFile, readFileSync} = require('fs');
const closureCompiler = new ClosureCompiler({
compilation_level: 'ADVANCED'
});
let src = readFileSync('a.js', 'UTF-8');
const compilerProcess = closureCompiler.run([{
path: './',
src: src,
sourceMap: null
}], (exitCode, stdOut, stdErr) => {
stdOut.map((fileResults) => {
writeFile(fileResults.path, fileResults.src, () => {});
});
});
a.js
console.log('hello world!')
compiled.js
console.log("hello world!");
好的,很显然,如果不使用 'fs' 库就无法创建文件。
根据"closure-compiler-js.js",当"run"完成时,回调仅记录结果。 https://github.com/google/closure-compiler-npm/blob/master/packages/google-closure-compiler/lib/node/closure-compiler-js.js
这很有趣,因为 'closure-compiler-npm' 确实使用 'fs' 来读取文件内容,但它没有任何 'write-file' 机制。
甚至在官方 'cli.js' 上也使用了 'fs' 库: https://github.com/google/closure-compiler-npm/blob/master/packages/google-closure-compiler/cli.js
const ClosureCompiler = require('google-closure-compiler').jsCompiler;
const { writeFile } = require('fs');
const closureCompiler = new ClosureCompiler({
js:['a.js','a1.js'],
js_output_file: 'out.js'
});
const compilerProcess = closureCompiler.run([{
path: './',
}], (exitCode, stdOut, stdErr) => {
writeFile(stdOut[0].path, stdOut[0].src,()=>{});
});