Skip to content

Commit a0dfa5a

Browse files
authored
Merge pull request #260 from vuejs/transpile-template
Transpile template using babel
2 parents c5e69b2 + 0da767d commit a0dfa5a

File tree

3 files changed

+43
-35
lines changed

3 files changed

+43
-35
lines changed

e2e/__projects__/basic/__snapshots__/test.js.snap

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,25 @@ var _default = {
3333
exports[\\"default\\"] = _default;
3434
;
3535
\\"use strict\\";
36-
Object.defineProperty(exports, \\"__esModule\\", { value: true });
37-
var vue_1 = require(\\"vue\\");
38-
var _hoisted_1 = { class: \\"hello\\" };
39-
function render(_ctx, _cache) {
40-
return (vue_1.openBlock(), vue_1.createBlock(\\"div\\", _hoisted_1, [
41-
vue_1.createVNode(\\"h1\\", { class: _ctx.headingClasses }, vue_1.toDisplayString(_ctx.msg), 3 /* TEXT, CLASS */)
42-
]));
43-
}
36+
37+
Object.defineProperty(exports, \\"__esModule\\", {
38+
value: true
39+
});
4440
exports.render = render;
45-
//# sourceMappingURL=module.js.map;
41+
42+
var _vue = require(\\"vue\\");
43+
44+
var _hoisted_1 = {
45+
\\"class\\": \\"hello\\"
46+
};
47+
48+
function render(_ctx, _cache) {
49+
return (0, _vue.openBlock)(), (0, _vue.createBlock)(\\"div\\", _hoisted_1, [(0, _vue.createVNode)(\\"h1\\", {
50+
\\"class\\": _ctx.headingClasses
51+
}, (0, _vue.toDisplayString)(_ctx.msg), 3
52+
/* TEXT, CLASS */
53+
)]);
54+
};
4655
;exports.default = {...exports.default, render};
4756
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhc2ljLnZ1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBUEE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBakJBIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiaGVsbG9cIj5cbiAgICA8aDEgOmNsYXNzPVwiaGVhZGluZ0NsYXNzZXNcIj57eyBtc2cgfX08L2gxPlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBtb2R1bGU9XCJjc3NcIj5cbi50ZXN0QSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbn1cbjwvc3R5bGU+XG48c3R5bGUgbW9kdWxlPlxuLnRlc3RCIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcbn1cbjwvc3R5bGU+XG48c3R5bGU+XG4udGVzdEMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlO1xufVxuPC9zdHlsZT5cblxuPHNjcmlwdD5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2Jhc2ljJyxcbiAgY29tcHV0ZWQ6IHtcbiAgICBoZWFkaW5nQ2xhc3NlczogZnVuY3Rpb24gaGVhZGluZ0NsYXNzZXMoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWQ6IHRoaXMuaXNDcmF6eSxcbiAgICAgICAgYmx1ZTogIXRoaXMuaXNDcmF6eSxcbiAgICAgICAgc2hhZG93OiB0aGlzLmlzQ3JhenlcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1zZzogJ1dlbGNvbWUgdG8gWW91ciBWdWUuanMgQXBwJyxcbiAgICAgIGlzQ3Jhenk6IGZhbHNlXG4gICAgfVxuICB9LFxuICBtZXRob2RzOiB7XG4gICAgdG9nZ2xlQ2xhc3M6IGZ1bmN0aW9uIHRvZ2dsZUNsYXNzKCkge1xuICAgICAgdGhpcy5pc0NyYXp5ID0gIXRoaXMuaXNDcmF6eVxuICAgIH1cbiAgfVxufVxuPC9zY3JpcHQ+XG4iXX0="
4857
`;
@@ -80,16 +89,25 @@ var _default = {
8089
exports[\\"default\\"] = _default;
8190
;
8291
\\"use strict\\";
83-
Object.defineProperty(exports, \\"__esModule\\", { value: true });
84-
var vue_1 = require(\\"vue\\");
85-
var _hoisted_1 = { class: \\"hello\\" };
86-
function render(_ctx, _cache) {
87-
return (vue_1.openBlock(), vue_1.createBlock(\\"div\\", _hoisted_1, [
88-
vue_1.createVNode(\\"h1\\", { class: _ctx.headingClasses }, vue_1.toDisplayString(_ctx.msg), 3 /* TEXT, CLASS */)
89-
]));
90-
}
92+
93+
Object.defineProperty(exports, \\"__esModule\\", {
94+
value: true
95+
});
9196
exports.render = render;
92-
//# sourceMappingURL=module.js.map;
97+
98+
var _vue = require(\\"vue\\");
99+
100+
var _hoisted_1 = {
101+
\\"class\\": \\"hello\\"
102+
};
103+
104+
function render(_ctx, _cache) {
105+
return (0, _vue.openBlock)(), (0, _vue.createBlock)(\\"div\\", _hoisted_1, [(0, _vue.createVNode)(\\"h1\\", {
106+
\\"class\\": _ctx.headingClasses
107+
}, (0, _vue.toDisplayString)(_ctx.msg), 3
108+
/* TEXT, CLASS */
109+
)]);
110+
};
93111
;exports.default = {...exports.default, render};
94112
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNvdXJjZU1hcHNTcmMudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFQQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFqQkEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIG5hbWU6ICdiYXNpYycsXG4gIGNvbXB1dGVkOiB7XG4gICAgaGVhZGluZ0NsYXNzZXM6IGZ1bmN0aW9uIGhlYWRpbmdDbGFzc2VzKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVkOiB0aGlzLmlzQ3JhenksXG4gICAgICAgIGJsdWU6ICF0aGlzLmlzQ3JhenksXG4gICAgICAgIHNoYWRvdzogdGhpcy5pc0NyYXp5XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBtc2c6ICdXZWxjb21lIHRvIFlvdXIgVnVlLmpzIEFwcCcsXG4gICAgICBpc0NyYXp5OiBmYWxzZVxuICAgIH1cbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIHRvZ2dsZUNsYXNzOiBmdW5jdGlvbiB0b2dnbGVDbGFzcygpIHtcbiAgICAgIHRoaXMuaXNDcmF6eSA9ICF0aGlzLmlzQ3JhenlcbiAgICB9XG4gIH1cbn1cbiJdfQ=="
95113
`;

lib/generate-code.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module.exports = function generateCode(
1616
}
1717

1818
if (templateResult) {
19-
output += `${templateResult.outputText};\n`
19+
output += `${templateResult.code};\n`
2020
}
2121

2222
if (output.includes('exports.render = render;')) {

lib/process.js

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
const { transpileModule } = require('typescript')
21
const { parse, compileTemplate } = require('@vue/compiler-sfc')
2+
const { transform } = require('@babel/core')
33
const convertSourceMap = require('convert-source-map')
44
const babelTransformer = require('babel-jest')
55

@@ -9,7 +9,6 @@ const coffeescriptTransformer = require('./transformers/coffee')
99
const _processStyle = require('./process-style')
1010
const processCustomBlocks = require('./process-custom-blocks')
1111
const getVueJestConfig = require('./utils').getVueJestConfig
12-
const getTsJestConfig = require('./utils').getTsJestConfig
1312
const logResultErrors = require('./utils').logResultErrors
1413
const stripInlineSourceMap = require('./utils').stripInlineSourceMap
1514
const getCustomTransformer = require('./utils').getCustomTransformer
@@ -67,22 +66,13 @@ function processTemplate(template, filename, config) {
6766
preprocessOptions: vueJestConfig[template.lang]
6867
})
6968

70-
// const result = compilerUtils.compileTemplate({
71-
// source: template.content,
72-
// compiler: VueTemplateCompiler,
73-
// filename: filename,
74-
// compilerOptions: {
75-
// optimize: false
76-
// },
77-
// isFunctional: template.attrs.functional,
78-
// preprocessLang: template.lang,
79-
// preprocessOptions: vueJestConfig[template.lang]
80-
// })
81-
8269
logResultErrors(result)
8370

84-
const tsconfig = getTsJestConfig(config)
85-
return transpileModule(result.code, tsconfig)
71+
const babelify = transform(result.code, { filename: 'file.js' })
72+
73+
return {
74+
code: babelify.code
75+
}
8676
}
8777

8878
function processStyle(styles, filename, config) {

0 commit comments

Comments
 (0)