facebook / jscodeshift

A JavaScript codemod toolkit.
https://jscodeshift.com
MIT License
9.26k stars 477 forks source link

TSX parser does not work if lodash is not already installed #426

Closed robyoder closed 3 years ago

robyoder commented 3 years ago

Sample project

// thing.tsx
import React from "react";

export const Mine = () => (
    <h1>Hi</h1>
);
// transform.js
module.exports = function(fileInfo) {
    return fileInfo.source;
};

STR

  1. npm install react
  2. npx jscodeshift --parser=tsx thing.tsx

Result

npx: installed 230 in 8.925s
Processing 1 files... 
Spawning 1 workers...
Sending 1 files to free worker...
 ERR thing.tsx Transformation error (Cannot find module 'lodash' Require stack: - /Users/me/.npm/_npx/15730/lib/node_modules/jscodeshift/parser/tsx.js - /Users/me/.npm/_npx/15730/lib/node_modules/jscodeshift/src/getParser.js - /Users/me/.npm/_npx/15730/lib/node_modules/jscodeshift/src/Worker.js)
Error: Cannot find module 'lodash'
Require stack:
- /Users/me/.npm/_npx/15730/lib/node_modules/jscodeshift/parser/tsx.js
- /Users/me/.npm/_npx/15730/lib/node_modules/jscodeshift/src/getParser.js
All done. 
Results: 
1 errors
0 unmodified
0 skipped
0 ok
Time elapsed: 0.496seconds

From what I can tell, all that needs to happen is to add lodash to this project's dependencies. (PR incoming)

JHilker commented 3 years ago

Duplicate of https://github.com/facebook/jscodeshift/issues/418

robyoder commented 3 years ago

Ah, thanks.