diff options
-rw-r--r-- | js/README.md | 24 | ||||
-rw-r--r-- | js/gulpfile.js | 6 |
2 files changed, 28 insertions, 2 deletions
diff --git a/js/README.md b/js/README.md index 2c33fb79..15d48c87 100644 --- a/js/README.md +++ b/js/README.md @@ -43,6 +43,10 @@ Once you have `protoc` compiled, you can run the tests by typing: $ npm install $ npm test + # If your protoc is somewhere else than ../src/protoc, instead do this. + # But make sure your protoc is the same version as this (or compatible)! + $ PROTOC=/usr/local/bin/protoc npm test + This will run two separate copies of the tests: one that uses Closure Compiler style imports and one that uses CommonJS imports. You can see all the CommonJS files in `commonjs_out/`. @@ -113,6 +117,26 @@ statements like: var message = new messages.MyMessage(); +The `--js_out` flag +------------------- + +The syntax of the `--js_out` flag is: + + --js_out=[OPTIONS:]output_dir + +Where `OPTIONS` are separated by commas. Options are either `opt=val` or +just `opt` (for options that don't take a value). The available options +are specified and documented in the `GeneratorOptions` struct in +[src/google/protobuf/compiler/js/js_generator.h](https://github.com/google/protobuf/blob/master/src/google/protobuf/compiler/js/js_generator.h#L53). + +Some examples: + +- `--js_out=library=myprotos_lib.js,binary:.`: this contains the options + `library=myprotos.lib.js` and `binary` and outputs to the current directory. + The `import_style` option is left to the default, which is `closure`. +- `--js_out=import_style=commonjs,binary:protos`: this contains the options + `import_style=commonjs` and `binary` and outputs to the directory `protos`. + API === diff --git a/js/gulpfile.js b/js/gulpfile.js index 88bb0022..b0faed06 100644 --- a/js/gulpfile.js +++ b/js/gulpfile.js @@ -2,8 +2,10 @@ var gulp = require('gulp'); var exec = require('child_process').exec; var glob = require('glob'); +var protoc = process.env.PROTOC || '../src/protoc'; + gulp.task('genproto_closure', function (cb) { - exec('../src/protoc --js_out=library=testproto_libs,binary:. -I ../src -I . *.proto ../src/google/protobuf/descriptor.proto', + exec(protoc + ' --js_out=library=testproto_libs,binary:. -I ../src -I . *.proto ../src/google/protobuf/descriptor.proto', function (err, stdout, stderr) { console.log(stdout); console.log(stderr); @@ -12,7 +14,7 @@ gulp.task('genproto_closure', function (cb) { }); gulp.task('genproto_commonjs', function (cb) { - exec('mkdir -p commonjs_out && ../src/protoc --js_out=import_style=commonjs,binary:commonjs_out -I ../src -I . *.proto ../src/google/protobuf/descriptor.proto', + exec('mkdir -p commonjs_out && ' + protoc + ' --js_out=import_style=commonjs,binary:commonjs_out -I ../src -I . *.proto ../src/google/protobuf/descriptor.proto', function (err, stdout, stderr) { console.log(stdout); console.log(stderr); |