Comments (8)
That's it! Perfect. I couldn't find anything in the readme for it, but it's there in the cli tool. The flag is called --dry
. Thanks 👍
from codemod.
I have had similar problems with recast for quite a long time. There are also issues like the LF -> CRLF conversion which recast can't do much about even if it worked well.
I was thinking whether it'd be possible to have a flag which doesn't even call recast on the code, so the file won't even be touched.
from codemod.
Have you tried it with --dry-run
?
from codemod.
Actually, on further thought, I still think there is a significant use-case for not touching unmodified files. Consider that my codemod changes only some files, but the codemod would still overwrite every single file it reads. So the developer will still have to spend additional time to figure out which files to commit, and which ones to checkout.
Would it be possible to add some functionality for the codemod cli to figure out when to overwrite files? For example, if the visitor function explicitly returns false
, then don't modify the file.
from codemod.
So you have a codemod which doesn't alter the AST, but the files are still being modified? I've seen things like that and they're typically bugs in recast. Can you provide a couple examples of the unwanted diffs?
from codemod.
Sure, check out this in ASTExplorer: https://astexplorer.net/#/gist/63a503b3b38c148a06d6438bad35af65/e81a51e13fc87be488af7801bb441351e12f7f91
from codemod.
This seems to happen even with something as small as this:
class A {
a = {};
}
which becomes this:
class A {
a = {};}
Something about reprinting class properties is probably broken in recast. I'll take a look later if I get time (cc @benjamn).
from codemod.
Closing since, though this remains an issue, the cause of it is not in codemod.
from codemod.
Related Issues (20)
- All-or-nothing matches HOT 7
- `and` matches HOT 1
- Difference between codemod-js and jscodeshift HOT 1
- Error: Requires Babel "^7.0.0-beta.41", but was loaded with "7.9.0" HOT 4
- Options are not passed into the plugin HOT 6
- Is there any way to ignore certain paths? HOT 5
- Bug? (babelrc options not work) + Use case (need to pass fn to plugin options) HOT 2
- Suggestion: replace custom file path resolver with globby HOT 5
- Suggestion: use Piscina for faster codemods HOT 1
- ASTExplorer latest revision link does not work with `--remote-plugin` HOT 1
- Debug mode? HOT 1
- [Question] How to create npx compatible codemod runners
- [Question] How to list changed files? HOT 1
- 3.1.0 Breaking Changes? HOT 6
- Adding an onComplete function HOT 1
- .match issues with TypeScript and fromCapture HOT 3
- Decorators cannot be used to decorate parameters. HOT 1
- Run with a custom babel.config.js HOT 1
- combine spacers and matchers HOT 3
- function expression m.anything doesn't match null id HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from codemod.