Skip to content
This repository was archived by the owner on Aug 16, 2022. It is now read-only.

Commit c4bcd40

Browse files
3cpznck
authored andcommitted
fix: normalize source map file path on windows (#83)
* chore: upgrade packages, cleanup type errors Took the opportunity to update TS to latest version, cleanup all type errors. * fix: normalize source map file path on windows Updated test snapshot file. 1. Sources paths was cleaned up by upgrading component-compiler-utils. 2. Styles mapping changes are due to newer version of postcss (from component-compiler-utils). 3. postcss rawResult is removed. * The rawResult contains ast tree which postcss always prepends current working directory to referencing file name. * This is a main pain point of maintaining this snapshot test. * The correctness of rawResult is responsibility of postcss, not vue compiler. So it's irrelevant to test it here. This is a companion PR for vuejs/component-compiler-utils#51
1 parent afa1cd4 commit c4bcd40

File tree

6 files changed

+131
-1094
lines changed

6 files changed

+131
-1094
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"rollup-plugin-image": "^1.0.2",
4848
"rollup-plugin-node-resolve": "^3.3.0",
4949
"ts-jest": "^22.4.2",
50-
"typescript": "^2.7.2",
50+
"typescript": "^3.2.4",
5151
"typescript-eslint-parser": "^15.0.0",
5252
"vue": "^2.5.16",
5353
"vue-template-compiler": "^2.5.16"
@@ -57,7 +57,7 @@
5757
"vue-template-compiler": "*"
5858
},
5959
"dependencies": {
60-
"@vue/component-compiler-utils": "^2.1.0",
60+
"@vue/component-compiler-utils": "^2.5.2",
6161
"clean-css": "^4.1.11",
6262
"hash-sum": "^1.0.2",
6363
"postcss-modules-sync": "^1.0.0",

src/assembler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export function assembleFromSource(
7474
script = script || { source: 'export default {}' }
7575
template = template || { source: '' }
7676
let map = undefined
77-
const mapGenerator = new SourceMapGenerator({ file: filename })
77+
const mapGenerator = new SourceMapGenerator({ file: filename.replace(/\\/g, '/') })
7878

7979
const hasScopedStyle = styles.some(style => style.scoped === true)
8080
const hasStyle = styles.some(style => style.source || style.module)

src/compiler.ts

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -99,20 +99,23 @@ export class SFCCompiler {
9999
? hash(path.basename(filename) + source)
100100
: hash(filename + source))
101101

102-
const template =
103-
descriptor.template && this.compileTemplate(filename, descriptor.template)
102+
const template = descriptor.template
103+
? this.compileTemplate(filename, descriptor.template)
104+
: undefined
104105

105106
const styles = descriptor.styles.map(style =>
106107
this.compileStyle(filename, scopeId, style)
107108
)
108109

109110
const { script: rawScript, customBlocks } = descriptor
110-
const script = rawScript && {
111-
code: rawScript.src
112-
? this.read(rawScript.src, filename)
113-
: rawScript.content,
114-
map: rawScript.map
115-
}
111+
const script = rawScript
112+
? {
113+
code: rawScript.src
114+
? this.read(rawScript.src, filename)
115+
: rawScript.content,
116+
map: rawScript.map
117+
}
118+
: undefined
116119

117120
return {
118121
scopeId,
@@ -140,8 +143,9 @@ export class SFCCompiler {
140143
? hash(path.basename(filename) + source)
141144
: hash(filename + source))
142145

143-
const template =
144-
descriptor.template && this.compileTemplate(filename, descriptor.template)
146+
const template = descriptor.template
147+
? this.compileTemplate(filename, descriptor.template)
148+
: undefined
145149

146150
const styles = await Promise.all(
147151
descriptor.styles.map(style =>
@@ -150,12 +154,14 @@ export class SFCCompiler {
150154
)
151155

152156
const { script: rawScript, customBlocks } = descriptor
153-
const script = rawScript && {
154-
code: rawScript.src
155-
? this.read(rawScript.src, filename)
156-
: rawScript.content,
157-
map: rawScript.map
158-
}
157+
const script = rawScript
158+
? {
159+
code: rawScript.src
160+
? this.read(rawScript.src, filename)
161+
: rawScript.content,
162+
map: rawScript.map
163+
}
164+
: undefined
159165

160166
return {
161167
scopeId,
@@ -260,7 +266,7 @@ export class SFCCompiler {
260266
},
261267

262268
prepare: result => ({
263-
media: style.attrs.media,
269+
media: typeof style.attrs.media === 'string' ? style.attrs.media : undefined,
264270
scoped: style.scoped,
265271
moduleName: style.module === true ? '$style' : <any>style.module,
266272
module: tokens,

0 commit comments

Comments
 (0)