vue-jscodeshift-adapter
Run jscodeshift on Vue single file components
Install
npm install vue-jscodeshift-adapter -D
Usage
The instructions below assume you're familiar with jscodeshift.
1. Create a wrapped transform function
This module wraps the transform()
function, enabling it to run on Vue single file components (sfc).
The two main use cases are:
- a. Modify one or more parts of an sfc
- b. Run a codemod on just the
<script>
part of an sfc
a. Modify a sfc's script, template or style
my-transform.js
:
const adapt = require('vue-jscodeshift-adapter');
function myTransform(fileInfo, api, options) {
const script = fileInfo.script.content;
const template = fileInfo.template.content;
const style = fileInfo.style.content;
fileInfo.script.content = newScript;
fileInfo.template.content = newTemplate;
fileInfo.style.content = newStyle;
}
module.exports = adapt(myTransform);
b. Run an existing codemod on sfc
After wrapping, you can run jscodeshift-compatible codemods on your sfc because
fileInfo.source
will be the content of the sfc's <script>
- If
transform()
returns a string, that string becomes the content of <script>
my-transform.js
:
const adapt = require('vue-jscodeshift-adapter');
const someCodemod = require('some-codemod');
module.exports = adapt(someCodemod);
2. Run jscodeshift
$ jscodeshift <path> -t my-transform.js --extensions vue
See jscodeshift readme for more info.
License
MIT