javascript - Webpack loader API:强制转换代码
问题描述
.vue
我正在编写一个将文件转换为 React 组件的 Webpack 加载器:
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);
它实际上并不转译脚本代码,而只是返回它。
我假设我正在做的第二件事是一个很好的领先,但也许我错过了一些东西。
解决方案
推荐阅读
- c# - Proj4Leaflet 在 Leaflet 中从 23700 转换为 4326
- reactjs - 如何存储 Fluent UI 表单字段的值?
- java - 当列表包含偶数和奇数时,如何使用 Junit 检查类的行为是否正确
- python-3.x - 在熊猫中将字符串日期转换为日期时间格式
- visual-studio-code - VSCode 远程 server.sh 在 wsl docker-desktop 中找不到节点
- c++ - 是否可以使用 push_back() 将元素输入二维向量?
- batch-file - 批处理文件中来自 DLL 的 BlockInput
- struct - Octave中的类似熊猫的对象:通过对其他字段进行操作将字段添加到结构中
- python - 使用带有复选按钮的网格和 tkinter 添加滚动条
- javascript - 如何收听元素可见性?