Vue 3 defineProps fail with imported types
Demivan opened this issue Β· comments
Ivan Demchuk commented
π bug report
When using Vue defineProps<Type>()
compilation fails when type is imported from a separate file.
<script setup lang="ts">
import type { ExternalProps } from './types';
defineProps<ExternalProps>();
</script>
π Configuration (.babelrc, package.json, cli command)
Default config
{
"scripts": {
"build": "parcel build index.html"
},
"devDependencies": {
"@parcel/transformer-vue": "2.12.0",
"parcel": "^2.12.0"
},
"dependencies": {
"vue": "^3.4.21"
}
}
π€ Expected Behavior
Using imported types for defineProps
(and other Vue macros) should work.
π― Current Behavior
Error: [@vue/compiler-sfc] No fs option provided to `compileScript` in non-Node environment. File system access is required for resolving imported types.
/parcel-vue/src/App.vue
2 | import type { ExternalProps } from './types';
3 |
4 | defineProps<ExternalProps>();
| ^^^^^^^^^^^^^
5 | </script>
6 |
at ScriptCompileContext.error (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:15575:11)
at importSourceToScope (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:18385:16)
at resolveTypeFromImport (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:18374:23)
at innerResolveTypeReference (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:18261:14)
at resolveTypeReference (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:18249:20)
at innerResolveTypeElements (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17854:24)
at resolveTypeElements (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17799:20)
at resolveRuntimePropsFromType (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:19324:20)
at extractRuntimeProps (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:19300:17)
at genRuntimeProps (/parcel-vue/node_modules/.pnpm/@vue+compiler-sfc@3.4.21/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:19288:18)
π Possible Solution
Pass fs
configuration to compileScript
.
π¦ Context
π» Code Sample
https://github.com/Demivan/parcel-vue
π Your Environment
Software | Version(s) |
---|---|
Parcel | 2.12.0 |
Node | 21.6.2 |
pnpm | 8.12.1 |
Operating System | Linux (NixOS) |