Commit 24c5424b authored by Josh Haberman's avatar Josh Haberman

Added a bit more to README.md, and allowed custom PROTOC var in tests.

parent 907ad4a0
...@@ -43,6 +43,10 @@ Once you have `protoc` compiled, you can run the tests by typing: ...@@ -43,6 +43,10 @@ Once you have `protoc` compiled, you can run the tests by typing:
$ npm install $ npm install
$ npm test $ 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 This will run two separate copies of the tests: one that uses
Closure Compiler style imports and one that uses CommonJS imports. Closure Compiler style imports and one that uses CommonJS imports.
You can see all the CommonJS files in `commonjs_out/`. You can see all the CommonJS files in `commonjs_out/`.
...@@ -113,6 +117,26 @@ statements like: ...@@ -113,6 +117,26 @@ statements like:
var message = new messages.MyMessage(); 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 API
=== ===
......
...@@ -2,8 +2,10 @@ var gulp = require('gulp'); ...@@ -2,8 +2,10 @@ var gulp = require('gulp');
var exec = require('child_process').exec; var exec = require('child_process').exec;
var glob = require('glob'); var glob = require('glob');
var protoc = process.env.PROTOC || '../src/protoc';
gulp.task('genproto_closure', function (cb) { 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) { function (err, stdout, stderr) {
console.log(stdout); console.log(stdout);
console.log(stderr); console.log(stderr);
...@@ -12,7 +14,7 @@ gulp.task('genproto_closure', function (cb) { ...@@ -12,7 +14,7 @@ gulp.task('genproto_closure', function (cb) {
}); });
gulp.task('genproto_commonjs', 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) { function (err, stdout, stderr) {
console.log(stdout); console.log(stdout);
console.log(stderr); console.log(stderr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment