瀏覽代碼

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

Josh Haberman 9 年之前
父節點
當前提交
24c5424be5
共有 2 個文件被更改,包括 28 次插入2 次删除
  1. 24 0
      js/README.md
  2. 4 2
      js/gulpfile.js

+ 24 - 0
js/README.md

@@ -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:
 
 
     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
 ===
 ===
 
 

+ 4 - 2
js/gulpfile.js

@@ -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) {
 });
 });
 
 
 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);