Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing "babylon" and other dependencies? #24

Open
slhck opened this issue Jan 27, 2020 · 14 comments
Open

Missing "babylon" and other dependencies? #24

slhck opened this issue Jan 27, 2020 · 14 comments

Comments

@slhck
Copy link

slhck commented Jan 27, 2020

I am using this in a RN 0.61.5 project, and I've installed the project with:

npm install react-native-obfuscating-transformer --save-dev

When running npx react-native start, I get this error:

Loading dependency graph...Failed to construct transformer:  Error: Cannot find module 'babylon'
Require stack:
-/node_modules/react-native-obfuscating-transformer/dist/getMetroTransformer.js
-/node_modules/react-native-obfuscating-transformer/dist/obfuscatingTransformer.js
-/node_modules/react-native-obfuscating-transformer/dist/index.js
-/transformer.js
-/node_modules/metro/src/JSTransformer/worker.js
-/node_modules/metro/src/DeltaBundler/Transformer/getTransformCacheKey.js
-/node_modules/metro/src/DeltaBundler/Transformer.js
-/node_modules/metro/src/Bundler.js
-/node_modules/metro/src/IncrementalBundler.js
-/node_modules/metro/src/index.js
-/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/loadMetroConfig.js
-/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
-/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
-/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
-/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
-/node_modules/react-native/cli.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:973:15)
    at Function.Module._load (internal/modules/cjs/loader.js:855:27)
    at Module.require (internal/modules/cjs/loader.js:1033:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/node_modules/react-native-obfuscating-transformer/dist/getMetroTransformer.js:6:15)
    at Module._compile (internal/modules/cjs/loader.js:1144:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1164:10)
    at Module.load (internal/modules/cjs/loader.js:993:32)
    at Function.Module._load (internal/modules/cjs/loader.js:892:14)
    at Module.require (internal/modules/cjs/loader.js:1033:19)

After running npm i babylon --save-dev, I get:

Loading dependency graph...Failed to construct transformer:  Error: Cannot find module 'babel-traverse'
Require stack:
- /node_modules/react-native-obfuscating-transformer/dist/getMetroTransformer.js
- /node_modules/react-native-obfuscating-transformer/dist/obfuscatingTransformer.js
- /node_modules/react-native-obfuscating-transformer/dist/index.js
- /transformer.js
- /node_modules/metro/src/JSTransformer/worker.js
- /node_modules/metro/src/DeltaBundler/Transformer/getTransformCacheKey.js
- /node_modules/metro/src/DeltaBundler/Transformer.js
- /node_modules/metro/src/Bundler.js
- /node_modules/metro/src/IncrementalBundler.js
- /node_modules/metro/src/index.js
- /node_modules/react-native/node_modules/@react-native-community/cli/build/tools/loadMetroConfig.js
- /node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /node_modules/react-native/cli.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:973:15)
    at Function.Module._load (internal/modules/cjs/loader.js:855:27)
    at Module.require (internal/modules/cjs/loader.js:1033:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/node_modules/react-native-obfuscating-transformer/dist/getMetroTransformer.js:7:24)
    at Module._compile (internal/modules/cjs/loader.js:1144:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1164:10)
    at Module.load (internal/modules/cjs/loader.js:993:32)
    at Function.Module._load (internal/modules/cjs/loader.js:892:14)
    at Module.require (internal/modules/cjs/loader.js:1033:19)

My transformer.js is:

const obfuscatingTransformer = require("react-native-obfuscating-transformer");

module.exports = obfuscatingTransformer({
  /* options */
});

And my Metro Config:

module.exports = {
  transformer: {
    babelTransformerPath: require.resolve("./transformer"),
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: false,
      },
    }),
  },
};

I see that Babylon is part of the dependencies: https://github.com/javascript-obfuscator/react-native-obfuscating-transformer/blob/master/package.json#L14 – but then again, there seem to be duplicates?

@Raymond-Cox
Copy link

Raymond-Cox commented Jan 27, 2020

Same issue here, same exact setup. Will continue digging and report back if I find anything.

EDIT: Try changing metro.config.js to the following:

module.exports = {
  transformer: {
    getTransformModulePath: () => {
      return require.resolve('./transformer');
    },
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: false,
      },
    }),
  },
};

@razorabhu1995
Copy link

@slhck @Raymond-Cox any solution to this?

@mrcarjul
Copy link

mrcarjul commented Feb 8, 2020

add babylon and babel-traverse as dev dependencies.

@razorabhu1995
Copy link

@mrcarjul After adding the dependencies, the above error is solved!!

But i get this:

Loading dependency graph, done.
Loading dependency graph...Failed to construct transformer: { Error: Cannot find module 'metro/src/reactNativeTransformer'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.getMetroTransformer (/home/naya/Documents/sabdakos/node_modules/react-native-obfuscating-transformer/dist/getMetroTransformer.js:19:16)
at obfuscatingTransformer (/home/naya/Documents/sabdakos/node_modules/react-native-obfuscating-transformer/dist/obfuscatingTransformer.js:38:208)
at Object. (/home/naya/Documents/sabdakos/transformer.js:3:18)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32) code: 'MODULE_NOT_FOUND' }
error Cannot read property 'transformFile' of undefined. Run CLI with --verbose flag for more details.
TypeError: Cannot read property 'transformFile' of undefined
at /home/naya/Documents/sabdakos/node_modules/metro/src/Bundler.js:87:34
at Generator.next ()
at asyncGeneratorStep (/home/naya/Documents/sabdakos/node_modules/metro/src/Bundler.js:14:24)
at _next (/home/naya/Documents/sabdakos/node_modules/metro/src/Bundler.js:34:9)

Any solution to this?

@Raymond-Cox
Copy link

@slhck @Raymond-Cox any solution to this?

What happened when you changed metro.config.js file to what I suggested?

@mrcarjul
Copy link

@razorabhu1995

module.exports = obfuscatingTransformer({
/* add this to your transformer.js file i think it will fix it */
upstreamTransformer: require('metro-react-native-babel-transformer'),

@byteab
Copy link

byteab commented Feb 13, 2020

@Raymond-Cox with your solution error is gone but nothing happened to source code it's not encrypted.

@byteab
Copy link

byteab commented Feb 13, 2020

I think the contributors of this library must have a re iterate over how metro bundler work in react native >= 0.60

@AustinZuniga
Copy link

+1

@AustinZuniga
Copy link

AustinZuniga commented Mar 6, 2020

Solved:

#2 (comment)

@byteab
Copy link

byteab commented Mar 13, 2020

@AustinZuniga tnx that solved the problem

@dooleyb1
Copy link

@mrcarjul After adding the dependencies, the above error is solved!!

But i get this:

Loading dependency graph, done.
Loading dependency graph...Failed to construct transformer: { Error: Cannot find module 'metro/src/reactNativeTransformer'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.getMetroTransformer (/home/naya/Documents/sabdakos/node_modules/react-native-obfuscating-transformer/dist/getMetroTransformer.js:19:16)
at obfuscatingTransformer (/home/naya/Documents/sabdakos/node_modules/react-native-obfuscating-transformer/dist/obfuscatingTransformer.js:38:208)
at Object. (/home/naya/Documents/sabdakos/transformer.js:3:18)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32) code: 'MODULE_NOT_FOUND' }
error Cannot read property 'transformFile' of undefined. Run CLI with --verbose flag for more details.
TypeError: Cannot read property 'transformFile' of undefined
at /home/naya/Documents/sabdakos/node_modules/metro/src/Bundler.js:87:34
at Generator.next ()
at asyncGeneratorStep (/home/naya/Documents/sabdakos/node_modules/metro/src/Bundler.js:14:24)
at _next (/home/naya/Documents/sabdakos/node_modules/metro/src/Bundler.js:34:9)

Any solution to this?

@razorabhu1995 Did you manage to resolve this issue? I too am getting the error Error: Cannot find module 'metro/src/reactNativeTransformer'

@dooleyb1
Copy link

@razorabhu1995 so the fix for this has actually already been merged into master, however it has not been deployed to npm. I manually implemented the changes within node_modules - see #15.

@anhdevit
Copy link

yarn add babylon -dev

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants