Skip to content

Commit d391e47

Browse files
committed
fix: eslint + airbnb compat with TypeScript
1 parent 9f5d0b9 commit d391e47

File tree

6 files changed

+32
-5
lines changed

6 files changed

+32
-5
lines changed

packages/@vue/cli-plugin-e2e-cypress/generator/template/test/e2e/_eslintrc

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
"env": {
77
"mocha": true,
88
"cypress/globals": true
9+
},
10+
"rules": {
11+
"strict": "off"
912
}
1013
}
1114
<%_ } _%>

packages/@vue/cli-plugin-pwa/generator/index.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@ module.exports = api => {
88
api.render('./template')
99

1010
api.postProcessFiles(files => {
11-
const file = files['src/main.ts']
11+
const isTS = 'src/main.ts' in files
12+
const file = isTS
1213
? 'src/main.ts'
1314
: 'src/main.js'
1415
const main = files[file]
1516
if (main) {
1617
// inject import for registerServiceWorker script into main.js
1718
const lines = main.split(/\r?\n/g).reverse()
1819
const lastImportIndex = lines.findIndex(line => line.match(/^import/))
19-
lines[lastImportIndex] += `\nimport './registerServiceWorker'`
20+
lines[lastImportIndex] += `\nimport './registerServiceWorker${isTS ? `.ts` : ``}'`
2021
files[file] = lines.reverse().join('\n')
2122
}
2223
})

packages/@vue/cli-plugin-typescript/generator/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,13 @@ module.exports = (api, {
114114
const jsRE = /\.js$/
115115
const excludeRE = /^test\/e2e\/|\.config\.js$/
116116
const convertLintFlags = require('../lib/convertLintFlags')
117+
const convertImports = require('../lib/convertImports')
117118
api.postProcessFiles(files => {
118119
for (const file in files) {
119120
if (jsRE.test(file) && !excludeRE.test(file)) {
120121
const tsFile = file.replace(jsRE, '.ts')
121122
if (!files[tsFile]) {
122-
files[tsFile] = convertLintFlags(files[file])
123+
files[tsFile] = convertLintFlags(convertImports(files[file]))
123124
}
124125
delete files[file]
125126
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module.exports = function convertImports (file) {
2+
return file
3+
.replace(/import (.*from )?('([^']+)'|"([^"]+)")/g, ($1, $2, $3, $4) => {
4+
const isRelative = $4.charAt(0) === '.'
5+
const isExtensionless = !/\.\w+$/.test($4)
6+
const isJS = /\.js$/.test($4)
7+
const replaced = isRelative
8+
? isExtensionless
9+
? $3.replace($4, `${$4}.ts`)
10+
: isJS
11+
? $3.replace(/\.js('|")$/, '.ts$1')
12+
: $3
13+
: $3
14+
return `import ${$2 || ''}${replaced}`
15+
})
16+
}

packages/@vue/cli-plugin-unit-jest/generator/index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,10 @@ module.exports = api => {
6464
if (api.hasPlugin('eslint')) {
6565
api.render(files => {
6666
files['test/unit/.eslintrc'] = JSON.stringify({
67-
env: { jest: true }
67+
env: { jest: true },
68+
rules: {
69+
'import/no-extraneous-dependencies': 'off'
70+
}
6871
}, null, 2)
6972
})
7073
}

packages/@vue/cli-plugin-unit-mocha/generator/index.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ module.exports = api => {
1616
if (api.hasPlugin('eslint')) {
1717
api.render(files => {
1818
files['test/unit/.eslintrc'] = JSON.stringify({
19-
env: { mocha: true }
19+
env: { mocha: true },
20+
rules: {
21+
'import/no-extraneous-dependencies': 'off'
22+
}
2023
}, null, 2)
2124
})
2225
}

0 commit comments

Comments
 (0)