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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy