Skip to content

Commit f15dcf7

Browse files
authored
feat: replace babel-plugin-transform-vue-jsx with @vue/babel-preset-jsx (#3218)
* feat: replace babel-plugin-transform-vue-jsx with @vue/babel-preset-jsx * feat: allow jsx options
1 parent e7af0d8 commit f15dcf7

File tree

4 files changed

+278
-96
lines changed

4 files changed

+278
-96
lines changed

packages/@vue/babel-preset-app/__tests__/babel-preset.spec.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,22 @@ test('jsx', () => {
106106
expect(code).toMatch(`var h = arguments[0]`)
107107
expect(code).toMatch(`return h("div", ["bar"])`)
108108
})
109+
110+
test('jsx options', () => {
111+
const { code } = babel.transformSync(`
112+
export default {
113+
render () {
114+
return <div>bar</div>
115+
}
116+
}
117+
`.trim(), {
118+
babelrc: false,
119+
presets: [[preset, {
120+
jsx: {
121+
injectH: false
122+
}
123+
}]]
124+
})
125+
expect(code).not.toMatch(`var h = arguments[0]`)
126+
expect(code).toMatch(`return h("div", ["bar"])`)
127+
})

packages/@vue/babel-preset-app/index.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,7 @@ module.exports = (context, options = {}) => {
3030

3131
// JSX
3232
if (options.jsx !== false) {
33-
plugins.push(
34-
require('@babel/plugin-syntax-jsx'),
35-
require('babel-plugin-transform-vue-jsx')
36-
// require('babel-plugin-jsx-event-modifiers'),
37-
// require('babel-plugin-jsx-v-model')
38-
)
33+
presets.push([require('@vue/babel-preset-jsx'), typeof options.jsx === 'object' ? options.jsx : {}])
3934
}
4035

4136
const {
@@ -125,7 +120,7 @@ module.exports = (context, options = {}) => {
125120
}
126121

127122
// pass options along to babel-preset-env
128-
presets.push([require('@babel/preset-env'), envOptions])
123+
presets.unshift([require('@babel/preset-env'), envOptions])
129124

130125
// additional <= stage-3 plugins
131126
// Babel 7 is removing stage presets altogether because people are using

packages/@vue/babel-preset-app/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"@babel/preset-env": "^7.0.0",
3030
"@babel/runtime": "^7.0.0",
3131
"@babel/runtime-corejs2": "^7.2.0",
32+
"@vue/babel-preset-jsx": "^1.0.0-beta.1",
3233
"babel-helper-vue-jsx-merge-props": "^2.0.3",
3334
"babel-plugin-dynamic-import-node": "^2.2.0",
3435
"babel-plugin-transform-vue-jsx": "^4.0.1",

0 commit comments

Comments
 (0)