fix(compiler-sfc): should extract comment for import or type declarations (#2107)
fix #2102
This commit is contained in:
parent
98cc1f9d84
commit
05df696a2b
@ -373,6 +373,19 @@ export function setup() {
|
||||
|
||||
x()
|
||||
|
||||
return { }
|
||||
}
|
||||
|
||||
export default { setup }"
|
||||
`;
|
||||
|
||||
exports[`SFC compile <script setup> should extract comment for import or type declarations 1`] = `
|
||||
"import a from 'a' // comment
|
||||
import b from 'b'
|
||||
|
||||
export function setup() {
|
||||
|
||||
|
||||
return { }
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,15 @@ describe('SFC compile <script setup>', () => {
|
||||
)
|
||||
})
|
||||
|
||||
test('should extract comment for import or type declarations', () => {
|
||||
assertCode(
|
||||
compile(`<script setup>
|
||||
import a from 'a' // comment
|
||||
import b from 'b'
|
||||
</script>`).content
|
||||
)
|
||||
})
|
||||
|
||||
test('explicit setup signature', () => {
|
||||
assertCode(
|
||||
compile(`<script setup="props, { emit }">emit('foo')</script>`).content
|
||||
|
@ -266,6 +266,12 @@ export function compileScript(
|
||||
const start = node.start! + startOffset
|
||||
let end = node.end! + startOffset
|
||||
// import or type declarations: move to top
|
||||
// locate comment
|
||||
if (node.trailingComments && node.trailingComments.length > 0) {
|
||||
const lastCommentNode =
|
||||
node.trailingComments[node.trailingComments.length - 1]
|
||||
end = lastCommentNode.end + startOffset
|
||||
}
|
||||
// locate the end of whitespace between this statement and the next
|
||||
while (end <= source.length) {
|
||||
if (!/\s/.test(source.charAt(end))) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user