Repository: netlify/zip-it-and-ship-it
Pull request #674 (2021-09-24 13:23:56)

fix: improve native module detection
**- Summary**

Improves the native module detection by:

- Adding `node-gyp` to the list of marker modules
- Looking for the presence of `.node` files in the `files` array in `package.json`

**- Test plan**

Adjusted existing test.

**- A picture of a cute animal (not mandatory but encouraged)**

![kc0fmcvq1mg41](https://user-images.githubusercontent.com/4162329/134680298-6f893ee4-107d-47bd-8681-912f092087c0.png)



github-actions[bot]: ## ⏱ Benchmark results

*Comparing with f756b03135e2300f0f3ba679466c7ad51b68f6c7*

### largeDepsEsbuild: 12.3s
 ⬇️ **1.72% decrease** vs. f756b03135e2300f0f3ba679466c7ad51b68f6c7
```
^                                  13.9s   13.9s                           14.1s   14.2s                  
│  13.6s           13.7s            ┌──┐    ┌──┐                            ┌──┐    ┌──┐   13.5s          
│   ┌──┐    13s     ┌──┐            |  |    |  |                   12.8s    |  |    |  |    ┌──┐          
│ ──┼──┼────┌──┐────┼──┼────────────┼──┼────┼──┼────────────────────┌──┐────┼──┼────┼──┼────┼──┼───12.3s──
│   |  |    |  |    |  |            |  |    |  |   11.4s            |  |    |  |    |  |    |  |    ┌──┐  
│   |  |    |  |    |  |            |  |    |  |    ┌──┐            |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |   10.3s    |  |    |  |    |  |   10.1s    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    ┌──┐    |  |    |  |    |  |    ┌──┐    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
```
<details>
<summary>Legend</summary>

- T-30 (f756b03135e2300f0f3ba679466c7ad51b68f6c7): 12.6s
- T-29 (5bf51d0b4938dcff42f5acefe309a67e9651d89b): 12.2s
- T-28 (c28eaafe7288d95822cffd2dd6d71c11ba420740): 11.6s
- T-27 (b843aae745fb9b3c3c9e7c8cf0fd328cf48587ef): 10.8s
- T-26 (cdbcad2c916610e2d12d601990bd67d1be18bc04): 12.8s
- T-25 (ff051cd9dd9994117e12ee2f9899dc1df960fa4f): 11.8s
- T-24 (c649c299f7857d8d40ea6fdb9fe7d5e13461c5e1): 12.5s
- T-23 (9c628c8b1667a5714c33f1f178aa105beb7a755a): 11.4s
- T-22 (bf6a59bbe4911b6969f84b8b9520c5661a6a8aab): 12.9s
- T-21 (85cc47d0677505ca2b6f2cfdf4662fb9c1f9a4b9): 13.4s
- T-20 (b105692e48b8ff2c175a7f93e9e28b053c8b5453): 12.4s
- T-19 (9b0c6d56e4e05704122fdd55cacc81d75cf40aa1): 10.6s
- T-18 (53d0281332b686165f2f3660b2c51efff5fea2a2): 12.2s
- T-17 (b468b2abe161bdd1e330b0f73bede56b497565cf): 11.1s
- T-16 (a9b86e2f9de9b0929dda849afee625651b4dc7cb): 11.1s
- T-15 (4c64157467b1e5186bb66a7af8cca71c2b8ad633): 11.5s
- T-14 (fbcb80f1a13b5c633331a51f5a8fdb00cebad0d8): 11.3s
- T-13 (cde6c632dff6ba227cf1b3017a1c6e0dced82c11): 12.4s
- T-12 (c1e762d844569d87cf049a04999e9efeb1ece034): 13.6s
- T-11 (cc489697c9efa5994b187ba4a3271d2d3ef89ad4): 13s
- T-10 (ce3c162cbbca918748763b66df2e29065bb41e47): 13.7s
- T-9 (fc6b3efdc887db8ed20bffa594cc953085ade70e): 10.3s
- T-8 (cde4e512323f9859ab4db145f30b091984cdaad4): 13.9s
- T-7 (cde22957f16be7748d3090f72da98d74a0725f1e): 13.9s
- T-6 (e463691e3e5b289ee7adc941fb8f7c6974effa31): 11.4s
- T-5 (ecb8856c139b7aa45aa866050cb0559e1e30ee37): 10.1s
- T-4 (73456ffd767b829916e66df531db54dd21398db2): 12.8s
- T-3 (452f7ee6a7da26f337079d531a1a0a061ea0abeb): 14.1s
- T-2 (fcc82b753d9562aeaa252a8b99aa962b30ab7b9f): 14.2s
- T-1 (0862f9a17bbcc13ec13e2d1b52dc8548a72b2f99): 13.5s
- **T (current commit): 12.3s**</details>
### largeDepsZisi: 1m 6.3s
 ⬇️ **1.47% decrease** vs. f756b03135e2300f0f3ba679466c7ad51b68f6c7
```
^                                 1m 13.5s1m 14.3s                                1m 14.8s                
│ 1m 10.3s        1m 11.6s          ┌──┐    ┌──┐                          1m 10.9s  ┌──┐  1m 11.3s        
│   ┌──┐   1m 8s    ┌──┐            |  |    |  |                  1m 7.8s   ┌──┐    |  |    ┌──┐  1m 6.3s 
│ ──┼──┼────┌──┐────┼──┼────────────┼──┼────┼──┼────────────────────┌──┐────┼──┼────┼──┼────┼──┼────┌──┐──
│   |  |    |  |    |  |            |  |    |  |                    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |            |  |    |  |   57.6s            |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |   52.9s    |  |    |  |    ┌──┐   50.8s    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    ┌──┐    |  |    |  |    |  |    ┌──┐    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
│   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |▒▒|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
```
<details>
<summary>Legend</summary>

- T-30 (f756b03135e2300f0f3ba679466c7ad51b68f6c7): 1m 7.3s
- T-29 (5bf51d0b4938dcff42f5acefe309a67e9651d89b): 1m 5.8s
- T-28 (c28eaafe7288d95822cffd2dd6d71c11ba420740): 1m 1.9s
- T-27 (b843aae745fb9b3c3c9e7c8cf0fd328cf48587ef): 56.7s
- T-26 (cdbcad2c916610e2d12d601990bd67d1be18bc04): 1m 9s
- T-25 (ff051cd9dd9994117e12ee2f9899dc1df960fa4f): 1m 2.2s
- T-24 (c649c299f7857d8d40ea6fdb9fe7d5e13461c5e1): 1m 4.8s
- T-23 (9c628c8b1667a5714c33f1f178aa105beb7a755a): 57.8s
- T-22 (bf6a59bbe4911b6969f84b8b9520c5661a6a8aab): 1m 10.4s
- T-21 (85cc47d0677505ca2b6f2cfdf4662fb9c1f9a4b9): 1m 10.1s
- T-20 (b105692e48b8ff2c175a7f93e9e28b053c8b5453): 1m 7.2s
- T-19 (9b0c6d56e4e05704122fdd55cacc81d75cf40aa1): 58s
- T-18 (53d0281332b686165f2f3660b2c51efff5fea2a2): 1m 5.7s
- T-17 (b468b2abe161bdd1e330b0f73bede56b497565cf): 59.1s
- T-16 (a9b86e2f9de9b0929dda849afee625651b4dc7cb): 57.6s
- T-15 (4c64157467b1e5186bb66a7af8cca71c2b8ad633): 58s
- T-14 (fbcb80f1a13b5c633331a51f5a8fdb00cebad0d8): 56.5s
- T-13 (cde6c632dff6ba227cf1b3017a1c6e0dced82c11): 1m 7.4s
- T-12 (c1e762d844569d87cf049a04999e9efeb1ece034): 1m 10.3s
- T-11 (cc489697c9efa5994b187ba4a3271d2d3ef89ad4): 1m 8s
- T-10 (ce3c162cbbca918748763b66df2e29065bb41e47): 1m 11.6s
- T-9 (fc6b3efdc887db8ed20bffa594cc953085ade70e): 52.9s
- T-8 (cde4e512323f9859ab4db145f30b091984cdaad4): 1m 13.5s
- T-7 (cde22957f16be7748d3090f72da98d74a0725f1e): 1m 14.3s
- T-6 (e463691e3e5b289ee7adc941fb8f7c6974effa31): 57.6s
- T-5 (ecb8856c139b7aa45aa866050cb0559e1e30ee37): 50.8s
- T-4 (73456ffd767b829916e66df531db54dd21398db2): 1m 7.8s
- T-3 (452f7ee6a7da26f337079d531a1a0a061ea0abeb): 1m 10.9s
- T-2 (fcc82b753d9562aeaa252a8b99aa962b30ab7b9f): 1m 14.8s
- T-1 (0862f9a17bbcc13ec13e2d1b52dc8548a72b2f99): 1m 11.3s
- **T (current commit): 1m 6.3s**</details>
<!--delta:benchmark@{}-->

Patch:
diff --git a/src/runtimes/node/native_modules/detector.js b/src/runtimes/node/native_modules/detector.js
index 594f79b..e87303f 100644
--- a/src/runtimes/node/native_modules/detector.js
+++ b/src/runtimes/node/native_modules/detector.js
@@ -1,16 +1,21 @@
-// eslint-disable-next-line complexity
-const isNativeModule = ({ binary, dependencies = {}, devDependencies = {}, gypfile }) =>
-  Boolean(
-    dependencies.bindings ||
-      dependencies.prebuild ||
-      dependencies.nan ||
-      dependencies['node-pre-gyp'] ||
-      dependencies['node-gyp-build'] ||
-      devDependencies.prebuild ||
-      devDependencies['node-pre-gyp'] ||
-      devDependencies['node-gyp-build'] ||
-      gypfile ||
-      binary,
-  )
+const { extname } = require('path')
+
+const markerModules = ['bindings', 'nan', 'node-gyp', 'node-gyp-build', 'node-pre-gyp', 'prebuild']
+
+const isNativeModule = ({ binary, dependencies = {}, devDependencies = {}, files = [], gypfile }) => {
+  if (binary || gypfile) {
+    return true
+  }
+
+  const hasMarkerModule = markerModules.some((marker) => dependencies[marker] || devDependencies[marker])
+
+  if (hasMarkerModule) {
+    return true
+  }
+
+  const hasBinaryFile = files.some((path) => !path.startsWith('!') && extname(path) === '.node')
+
+  return hasBinaryFile
+}
 
 module.exports = { isNativeModule }


Test patch:
diff --git a/tests/fixtures/node-module-native-buildtime/function.js b/tests/fixtures/node-module-native-buildtime/function.js
index 28b1bd4..4263c38 100644
--- a/tests/fixtures/node-module-native-buildtime/function.js
+++ b/tests/fixtures/node-module-native-buildtime/function.js
@@ -1,1 +1,5 @@
-module.exports = require('test')
+const moduleWithNodeFile = require('module-with-node-file')
+const moduleWithNodeGyp = require('module-with-node-gyp')
+const moduleWithPrebuild = require('module-with-prebuild')
+
+module.exports = [moduleWithNodeFile, moduleWithNodeGyp, moduleWithPrebuild]
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/test/index.js b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/index.js
similarity index 100%
rename from tests/fixtures/node-module-native-buildtime/node_modules/test/index.js
rename to tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/index.js
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/test/native.node b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/native.node
similarity index 100%
rename from tests/fixtures/node-module-native-buildtime/node_modules/test/native.node
rename to tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/native.node
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/package.json b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/package.json
new file mode 100644
index 0000000..7efe54d
--- /dev/null
+++ b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/package.json
@@ -0,0 +1,8 @@
+{
+  "name": "module-with-node-file",
+  "version": "3.0.0",
+  "main": "./index.js",
+  "files": [
+    "native.node"
+  ]
+}
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/test/side-file.js b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/side-file.js
similarity index 100%
rename from tests/fixtures/node-module-native-buildtime/node_modules/test/side-file.js
rename to tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-file/side-file.js
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/index.js b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/index.js
new file mode 100644
index 0000000..bc7703f
--- /dev/null
+++ b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/index.js
@@ -0,0 +1,8 @@
+try {
+  require('./native.node')
+} catch (_) {
+  // The .node file is empty, so the `require` is expected to fail.
+}
+
+
+module.exports = true
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/native.node b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/native.node
new file mode 100644
index 0000000..e69de29
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/package.json b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/package.json
new file mode 100644
index 0000000..05fc712
--- /dev/null
+++ b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/package.json
@@ -0,0 +1,8 @@
+{
+  "name": "module-with-node-gyp",
+  "version": "1.0.0",
+  "main": "./index.js",
+  "devDependencies": {
+    "node-gyp": "^6.1.0"
+  }
+}
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/side-file.js b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/side-file.js
new file mode 100644
index 0000000..ef06e80
--- /dev/null
+++ b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-node-gyp/side-file.js
@@ -0,0 +1,1 @@
+module.exports = true
\ No newline at end of file
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/index.js b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/index.js
new file mode 100644
index 0000000..bc7703f
--- /dev/null
+++ b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/index.js
@@ -0,0 +1,8 @@
+try {
+  require('./native.node')
+} catch (_) {
+  // The .node file is empty, so the `require` is expected to fail.
+}
+
+
+module.exports = true
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/native.node b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/native.node
new file mode 100644
index 0000000..e69de29
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/test/package.json b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/package.json
similarity index 58%
rename from tests/fixtures/node-module-native-buildtime/node_modules/test/package.json
rename to tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/package.json
index 1c88517..70a5c6c 100644
--- a/tests/fixtures/node-module-native-buildtime/node_modules/test/package.json
+++ b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/package.json
@@ -1,6 +1,6 @@
 {
-  "name": "test",
-  "version": "1.0.0",
+  "name": "module-with-prebuild",
+  "version": "2.0.0",
   "main": "./index.js",
   "devDependencies": {
     "prebuild": "1.0.0"
diff --git a/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/side-file.js b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/side-file.js
new file mode 100644
index 0000000..ef06e80
--- /dev/null
+++ b/tests/fixtures/node-module-native-buildtime/node_modules/module-with-prebuild/side-file.js
@@ -0,0 +1,1 @@
+module.exports = true
\ No newline at end of file
diff --git a/tests/fixtures/node-module-native-buildtime/package.json b/tests/fixtures/node-module-native-buildtime/package.json
index bb906b2..7a417b4 100644
--- a/tests/fixtures/node-module-native-buildtime/package.json
+++ b/tests/fixtures/node-module-native-buildtime/package.json
@@ -2,6 +2,8 @@
   "name": "node-module-native-buildtime",
   "version": "1.0.0",
   "dependencies": {
-    "test": "1.0.0"
+    "module-with-node-file": "3.0.0",
+    "module-with-node-gyp": "1.0.0",
+    "module-with-prebuild": "2.0.0"
   }
 }
diff --git a/tests/main.js b/tests/main.js
index 5759822..2bae8a0 100644
--- a/tests/main.js
+++ b/tests/main.js
@@ -91,17 +91,32 @@ testBundlers(
     })
     const requires = await getRequires({ filePath: resolve(tmpDir, 'function.js') })
     const normalizedRequires = new Set(requires.map(unixify))
-    const modulePath = resolve(FIXTURES_DIR, `${fixtureDir}/node_modules/test`)
 
     t.is(files.length, 1)
     t.is(files[0].runtime, 'js')
-    t.true(await pathExists(`${tmpDir}/node_modules/test/native.node`))
-    t.true(await pathExists(`${tmpDir}/node_modules/test/side-file.js`))
-    t.true(normalizedRequires.has('test'))
+
+    const moduleWithNodeFile = resolve(FIXTURES_DIR, `${fixtureDir}/node_modules/module-with-node-file`)
+    t.true(await pathExists(`${tmpDir}/node_modules/module-with-node-file/native.node`))
+    t.true(await pathExists(`${tmpDir}/node_modules/module-with-node-file/side-file.js`))
+    t.true(normalizedRequires.has('module-with-node-file'))
+
+    const moduleWithNodeGypPath = resolve(FIXTURES_DIR, `${fixtureDir}/node_modules/module-with-node-gyp`)
+    t.true(await pathExists(`${tmpDir}/node_modules/module-with-node-gyp/native.node`))
+    t.true(await pathExists(`${tmpDir}/node_modules/module-with-node-gyp/side-file.js`))
+    t.true(normalizedRequires.has('module-with-node-gyp'))
+
+    const moduleWithPrebuildPath = resolve(FIXTURES_DIR, `${fixtureDir}/node_modules/module-with-prebuild`)
+    t.true(await pathExists(`${tmpDir}/node_modules/module-with-prebuild/native.node`))
+    t.true(await pathExists(`${tmpDir}/node_modules/module-with-prebuild/side-file.js`))
+    t.true(normalizedRequires.has('module-with-prebuild'))
 
     // We can only detect native modules when using esbuild.
     if (bundler !== DEFAULT) {
-      t.deepEqual(files[0].nativeNodeModules, { test: { [modulePath]: '1.0.0' } })
+      t.deepEqual(files[0].nativeNodeModules, {
+        'module-with-node-file': { [moduleWithNodeFile]: '3.0.0' },
+        'module-with-node-gyp': { [moduleWithNodeGypPath]: '1.0.0' },
+        'module-with-prebuild': { [moduleWithPrebuildPath]: '2.0.0' },
+      })
     }
   },
 )