Я пишу загрузчик Webpack, который передает .vue
файлы в компоненты React:
https://github.com/LukasBombach/single-file-components
Файл .vue
может состоять из <template>
<script>
и<style>
тег.В качестве части моей реализации я хочу обязательно загрузить часть <script>
и передать ее через Webpack для дальнейшей обработки.Поэтому, если у меня есть этот .vue
файл:
<template>
<div>hello world</div>
</template>
<script>
import something from "something";
export default {
data() {
return {
baz: "baz"
};
}
};
</script>
, я в основном хочу сделать это (фиктивный код с целью объяснения):
myLoader.js
function myLoader(source) {
// should return everything between <script> and </script> as a string
const scriptCode = getCodeInsideScriptTags(source);
// transpiledJsCode should be es5 code that has been transpiled by Webpack
const transpiledJsCode = this.theWebpackFunctionIAmLookingFor(scriptCode);
// Now I can process the transpiledJsCode
}
Есть ли способ сделать это?Я нашел [this.loadModule][1]
и this.callback
, но если я сделаю это:
const request = `${this.loader.resourcePath}.js`;
this.loadModule(request);
он сделает попытаться пройти через загрузчик js, но все это говорит о том, чтоон не может найти файл .js
, который я ищу.И если я сделаю это:
const scriptCode = getCodeInsideScriptTags(source);
this.loader.resourcePath += ".js";
this.loader.callback(null, scriptCode);
, он на самом деле не переносит код сценария, а просто возвращает его.
Я предполагаю, что второе, что я делаю, - это хорошее преимущество, но, возможно,Я что-то упустил.