Saya punya aplikasi tempat pihak ketiga dapat membuat plugin. Saya ingin mereka dapat membuat plugin tersebut sebagai komponen file tunggal, yang dapat ditarik dan ditampilkan seperti komponen bawaan. Saat ini, satu-satunya cara bagi mereka untuk melakukannya adalah dengan membuat komponen dalam formulir ini:
{
template: "<div>stuff</div>",
props: ...
etc.
}
Ini canggung, ditambah tidak ada cara mudah untuk memasukkan gaya.
Lebih detail: https://stackoverflow.com/questions/62035019/load-vue-single-file-component-dynamically-at-runtime
Saya pikir logika untuk melakukan ini ada, tetapi ada di vue-loader, dan benar-benar dimaksudkan untuk digunakan dengan Webpack. Webpack tidak dirancang untuk digunakan saat runtime.
<template>
<div>
The component goes here:
<component :is="pluginComponent"></component>
</div>
</template>
<script>
import { compileSFC } from "vue-template-compiler";
export default {
data() {
return {
pluginComponent: null
};
},
mounted() {
// fetch code from some external source here
let code = "<template><div>hello</div></template><style>some styles</style><script>some code</script>";
let comp = compileSFC(code);
this.pluginComponent = comp;
}
};
</script>
Sudah ada alat untuk mencapai proses kompilasi yang ada di dalam vue-loader: https://github.com/vuejs?q=compiler&type=&language=
Oke, tetapi tidak ada dokumentasi yang cukup untuk benar-benar menggunakannya. Tidak ada contoh.
Saya mencari beberapa kode rollup, tetapi bahkan impor dasar menghasilkan banyak kesalahan kompilasi, sebagian besar berkaitan dengan konsolidasi.js:
import { createDefaultCompiler } from "@vue/component-compiler";
Tolong jangan tandai ini sebagai tutup tanpa menambahkan contoh penggunaan sederhana. Contoh dapat ditambahkan ke README, dan juga digunakan untuk menjawab pertanyaan orang ini: https://github.com/vuejs/vue-component-compiler/issues/93
@posva Ingin memastikan Anda melihat komentar saya di atas.
Komentar yang paling membantu
Oke, tetapi tidak ada dokumentasi yang cukup untuk benar-benar menggunakannya. Tidak ada contoh.
Saya mencari beberapa kode rollup, tetapi bahkan impor dasar menghasilkan banyak kesalahan kompilasi, sebagian besar berkaitan dengan konsolidasi.js:
Tolong jangan tandai ini sebagai tutup tanpa menambahkan contoh penggunaan sederhana. Contoh dapat ditambahkan ke README, dan juga digunakan untuk menjawab pertanyaan orang ini: https://github.com/vuejs/vue-component-compiler/issues/93