Skip to content

Commit 9423719

Browse files
committed
resolve conficts
2 parents 93f6e47 + 394ca2f commit 9423719

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

src/parser/script.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,11 @@ function scriptParser(scriptObject: ScriptObjectType, defaults: Object, type: st
6363
const cachedBabelScript = Cache.get(cacheKey);
6464
if (cachedBabelScript) {
6565
const finalScript = dataMerge(cachedBabelScript, defaults, type);
66-
resolve(finalScript);
66+
const finalObject = {
67+
script: finalScript,
68+
style: cachedBabelScript.style
69+
};
70+
resolve(finalObject);
6771
} else {
6872
const babelScript = babel.transform(scriptObject.content, options);
6973
// const filename = path.join(defaults.rootPath, '/', defaults.component);
@@ -72,12 +76,16 @@ function scriptParser(scriptObject: ScriptObjectType, defaults: Object, type: st
7276
defaults: defaults
7377
};
7478
Utils.requireFromString(babelScript.code, defaults.component, requireFromStringOptions, Cache)
75-
.then(scriptFromString => {
79+
.then(requiredObject => {
7680
// set the cache for the babel script string
77-
Cache.set(cacheKey, scriptFromString);
81+
Cache.set(cacheKey, requiredObject);
7882

79-
const finalScript = dataMerge(scriptFromString, defaults, type);
80-
resolve(finalScript);
83+
const finalScript = dataMerge(requiredObject.code, defaults, type);
84+
const finalObject = {
85+
script: finalScript,
86+
style: requiredObject.style
87+
};
88+
resolve(finalObject);
8189
})
8290
.catch(error => reject(error));
8391
}

src/utils/require.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ function replaceRelativePaths(code: string, rootPath: string): string {
7878
function requireFromString(code: string, filename: string = '', optsObj: Object = {}, Cache: Object): Promise < Object > {
7979
return new Promise((resolve, reject) => {
8080
const options = new Options(optsObj);
81+
let style = '';
8182
let promiseArray = [];
8283

8384
if (typeof code !== 'string') {
@@ -108,7 +109,9 @@ function requireFromString(code: string, filename: string = '', optsObj: Object
108109
for (var renderedItem of renderedItemArray) {
109110
const rawString = renderedItem.rendered.scriptStringRaw;
110111
code = code.replace(renderedItem.match, rawString);
111-
styles += renderedItem.rendered.layout.style;
112+
if (renderedItem.rendered.layout && renderedItem.rendered.layout.style) {
113+
styles += renderedItem.rendered.layout.style;
114+
}
112115
}
113116
//check if its the last element and then render
114117
const last_element = code.match(options.vueFileRegex);
@@ -123,7 +126,11 @@ function requireFromString(code: string, filename: string = '', optsObj: Object
123126
});
124127
} else {
125128
m._compile(code, filename);
126-
resolve(m.exports.default);
129+
const resolvedObject = {
130+
code: m.exports.default,
131+
style: style
132+
};
133+
resolve(resolvedObject);
127134
}
128135
});
129136
}

0 commit comments

Comments
 (0)