Skip to content

Commit 535b86f

Browse files
committed
add ability to specify the compiler externally
allows projects which use forks (such as CellEngine) to specify the compiler module with require("vue-toolchain/transform").registerCompiler(). for example do it in webpack.config so that by the time webpack calls the loader it has the right reference to vue-template-compiler
1 parent 71dc101 commit 535b86f

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

loader.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const transform = require('./transform');
2-
const compiler = require('vue-template-compiler'); // just used for logging
2+
const compiler = transform.compiler || require("vue-template-compiler"); // just used for logging
33

44
let SourceMapConsumer, SourceMapGenerator;
55

register.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
const transform = require('./transform');
22
const jsHook = require.extensions['.js'];
33

4+
// TODO allow register to be called externally somehow?
5+
// in CellEngine we need to pass @primitybio/vue-template-compiler,
6+
// but not a problem right now since we don't use this in CE
7+
transform.register(require("vue-template-compiler"));
8+
49
require.extensions['.vue'] = function (module, file) {
510
const oldCompile = module._compile;
611
module._compile = function (code, file) {

transform.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
const babel = require('@babel/core');
22
const generate = require('@babel/generator').default;
3-
const compiler = require('vue-template-compiler');
43
const cutils = require('@vue/component-compiler-utils');
54

65
function removeSourceMap(ast) {
@@ -86,6 +85,7 @@ const getPlugin = (renderFunctionExpr, staticRenderArrayExpr, isFunctional) => {
8685
};
8786

8887
module.exports = function (vueSource, vueFilename, extraPlugins) {
88+
const compiler = module.exports.compiler || require("vue-template-compiler");
8989
const plugins = extraPlugins || [];
9090

9191
const {script, template} = cutils.parse({
@@ -122,3 +122,5 @@ module.exports = function (vueSource, vueFilename, extraPlugins) {
122122
template
123123
};
124124
};
125+
126+
module.exports.registerCompiler = c => module.exports.compiler = c;

0 commit comments

Comments
 (0)