Skip to content

Commit a1f49ba

Browse files
authored
Fix issue20 (vuejs#29)
* fix: fixes vuejs#20 vuejs#28 * chore: add an exit prompt
1 parent e544174 commit a1f49ba

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

bin/vue-codemod.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ const {
5858
]
5959
])
6060
.help()
61-
.alias('h', 'help').argv
61+
.alias('h', 'help')
62+
.alias('v', 'version').argv
6263

6364
// TODO: port the `Runner` interface of jscodeshift
6465
async function main() {
@@ -69,6 +70,7 @@ async function main() {
6970
'press enter or enter yes or enter Y to continue:'
7071
)
7172
if (!['', 'yes', 'Y'].includes(answer.trim())) {
73+
console.log('Abort!!!')
7274
return
7375
}
7476

@@ -81,8 +83,9 @@ async function main() {
8183
transformationName,
8284
transformationModule
8385
)
84-
packageTransform()
85-
processFilePath.push('package.json')
86+
if (packageTransform()) {
87+
processFilePath.push('package.json')
88+
}
8689
}
8790

8891
if (runAllTransformation) {
@@ -106,8 +109,9 @@ async function main() {
106109
)
107110
}
108111
}
109-
packageTransform()
110-
processFilePath.push('package.json')
112+
if (packageTransform()) {
113+
processFilePath.push('package.json')
114+
}
111115
}
112116
const processFilePathList = processFilePath.join('\n')
113117
console.log(`--------------------------------------------------`)

src/packageTransformation.ts

+18-6
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,34 @@ const debug = createDebug('vue-codemod:rule')
1212
* @returns {Object} The fix command.
1313
* @private
1414
*/
15-
export function transform(): void {
15+
export function transform(): boolean {
16+
debug('Find package.json.')
1617
const resolvedPaths = globby.sync('package.json' as string)
1718
if (resolvedPaths.length <= 0) {
18-
debug('package.json is not exists.')
19-
return
19+
console.warn('package.json is not exists.')
20+
return false
2021
}
2122

2223
let packageObject: any = JSON.parse(
2324
fs.readFileSync(resolvedPaths[0]).toString()
2425
)
2526

2627
if (packageObject?.dependencies != undefined) {
28+
debug('Process dependencies')
2729
process(packageObject.dependencies)
2830
}
2931

3032
if (packageObject?.peerDependencies != undefined) {
33+
debug('Process peerDependencies')
3134
process(packageObject.peerDependencies)
3235
}
3336

3437
if (packageObject?.devDependencies != undefined) {
35-
if (packageObject?.devDependencies['vue-template-compiler'] != undefined) {
36-
delete packageObject.devDependencies['vue-template-compiler']
37-
}
38+
debug('Process devDependencies')
39+
process(packageObject.devDependencies)
40+
}
41+
42+
if (packageObject?.devDependencies != undefined) {
3843
packageObject.devDependencies['@vue/compiler-sfc'] = '^3.1.1'
3944
packageObject.devDependencies['eslint'] = '^7.20.0'
4045
packageObject.devDependencies['eslint-plugin-vue'] = '^7.11.1'
@@ -45,6 +50,7 @@ export function transform(): void {
4550
Object.assign({ parser: 'json' }, packageObject.prettier)
4651
)
4752
fs.writeFileSync(resolvedPaths[0], formatted)
53+
return true
4854
}
4955
/**
5056
* Modify the configuration of dependencies
@@ -63,4 +69,10 @@ function process(dependencies: any) {
6369
if (dependencies['vue-i18n'] != undefined) {
6470
dependencies['vue-i18n'] = '^9.1.6'
6571
}
72+
if (dependencies['vue-template-compiler'] != undefined) {
73+
delete dependencies['vue-template-compiler']
74+
}
75+
if (dependencies['@vue/composition-api'] != undefined) {
76+
delete dependencies['@vue/composition-api']
77+
}
6678
}

0 commit comments

Comments
 (0)