Update to rules_nodejs 0.12.4 & make rules forward compatible with npm fine grained deps

Closes #267

PiperOrigin-RevId: 212663195
diff --git a/examples/app/BUILD.bazel b/examples/app/BUILD.bazel
index 7f5aed3..919650a 100644
--- a/examples/app/BUILD.bazel
+++ b/examples/app/BUILD.bazel
@@ -1,4 +1,5 @@
 load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver", "ts_library")
+load("@build_bazel_rules_nodejs//:defs.bzl", "http_server")
 
 ts_library(
     name = "app",
@@ -25,14 +26,12 @@
     deps = [":app"],
 )
 
-nodejs_binary(
+http_server(
     name = "prodserver",
-    args = ["./examples/app"],
     data = [
         "index.html",
         ":bundle",
     ],
-    entry_point = "http-server/bin/http-server",
 )
 
 ts_library(
diff --git a/examples/googmodule/BUILD.bazel b/examples/googmodule/BUILD.bazel
index 285ae8b..adc53bd 100644
--- a/examples/googmodule/BUILD.bazel
+++ b/examples/googmodule/BUILD.bazel
@@ -21,4 +21,5 @@
     data = [
         ":es5_output",
     ],
+    node_modules = "//:node_modules",
 )
diff --git a/examples/protocol_buffers/BUILD.bazel b/examples/protocol_buffers/BUILD.bazel
index 68e33f7..dcb310c 100644
--- a/examples/protocol_buffers/BUILD.bazel
+++ b/examples/protocol_buffers/BUILD.bazel
@@ -57,7 +57,7 @@
 )
 
 # Test for production mode
-load("@build_bazel_rules_nodejs//:defs.bzl", "rollup_bundle", "nodejs_binary")
+load("@build_bazel_rules_nodejs//:defs.bzl", "http_server", "rollup_bundle", "nodejs_binary")
 
 rollup_bundle(
     name = "bundle",
@@ -86,15 +86,13 @@
     cmd = "outs=($(OUTS)); d=$$(dirname $${outs[0]}); for s in $(SRCS); do cp $$s $$d; done",
 )
 
-nodejs_binary(
+http_server(
     name = "prodserver",
-    args = ["./examples/protocol_buffers"],
     data = [
         "index.html",
         ":bundle",
         ":protobufjs",
     ],
-    entry_point = "http-server/bin/http-server",
 )
 
 ts_library(
diff --git a/examples/some_module/BUILD.bazel b/examples/some_module/BUILD.bazel
index b3747f8..54be2b9 100644
--- a/examples/some_module/BUILD.bazel
+++ b/examples/some_module/BUILD.bazel
@@ -40,6 +40,7 @@
         ":some_module",
     ],
     entry_point = "build_bazel_rules_typescript/examples/some_module/main.js",
+    node_modules = "//:node_modules",
 )
 
 sh_test(
diff --git a/internal/BUILD.bazel b/internal/BUILD.bazel
index 354a920..7d90c31 100644
--- a/internal/BUILD.bazel
+++ b/internal/BUILD.bazel
@@ -31,6 +31,7 @@
 nodejs_binary(
     name = "tsc",
     entry_point = "typescript/lib/tsc.js",
+    node_modules = "@//:node_modules",
     visibility = ["//internal:__subpackages__"],
 )
 
@@ -72,6 +73,7 @@
         ":tsc_wrapped",
     ],
     entry_point = "build_bazel_rules_typescript/internal/tsc_wrapped/tsc_wrapped.js",
+    node_modules = "@//:node_modules",
     templated_args = ["--node_options=--expose-gc"],
     visibility = ["//visibility:public"],
 )
@@ -87,4 +89,5 @@
     name = "test",
     srcs = [],
     deps = [":test_lib"],
+    node_modules = "//:node_modules",
 )
diff --git a/internal/e2e/default_tsconfig_test.js b/internal/e2e/default_tsconfig_test.js
index f8dfa22..ef3ae7f 100644
--- a/internal/e2e/default_tsconfig_test.js
+++ b/internal/e2e/default_tsconfig_test.js
@@ -24,9 +24,9 @@
 const WORKSPACE_BOILERPLATE = `
 http_archive(
     name = "build_bazel_rules_nodejs",
-    urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.11.3.zip"],
-    strip_prefix = "rules_nodejs-0.11.3",
-    sha256 = "e8842fa5f5e38f2c826167ff94323d4b5aabd13217cee867d971d6f860cfd730"
+    urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.12.4.zip"],
+    strip_prefix = "rules_nodejs-0.12.4",
+    sha256 = "c482700e032b4df60425cb9a6f8f28152fb1c4c947a9d61e6132fc59ce332b16"
 )
 http_archive(
     name = "bazel_skylib",
diff --git a/internal/e2e/reference_types_directive/BUILD.bazel b/internal/e2e/reference_types_directive/BUILD.bazel
index 48379b4..4d14c92 100644
--- a/internal/e2e/reference_types_directive/BUILD.bazel
+++ b/internal/e2e/reference_types_directive/BUILD.bazel
@@ -22,4 +22,5 @@
 jasmine_node_test(
     name = "test",
     deps = [":test_lib"],
+    node_modules = "//:node_modules",
 )
diff --git a/package.bzl b/package.bzl
index 10b482b..7a6849e 100644
--- a/package.bzl
+++ b/package.bzl
@@ -38,9 +38,9 @@
     _maybe(
         http_archive,
         name = "build_bazel_rules_nodejs",
-        urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.11.5.zip"],
-        strip_prefix = "rules_nodejs-0.11.5",
-        sha256 = "985bf908faa72cc4638c356a99d19ccac223e5dcd8dae695e3157e5c00f53489",
+        urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.12.4.zip"],
+        strip_prefix = "rules_nodejs-0.12.4",
+        sha256 = "c482700e032b4df60425cb9a6f8f28152fb1c4c947a9d61e6132fc59ce332b16",
     )
 
     # ts_web_test depends on the web testing rules to provision browsers.