javascript - 如何使用 Webpack 加载器读取 React js App 中的本地 html 文件内容?
问题描述
我正在开发 react js 应用程序并尝试在本地读取 html 文件内容。在特定条件下,我在这样的变量中传递文件 html 数据::
let content = require(`../Designs/${data.path}.html`);
但这给了我错误:
模块解析失败:意外令牌 (1:0) 您可能需要适当的加载器来处理此文件类型,目前没有配置加载器来处理此文件。见 https://webpack.js.org/concepts#loaders
为了解决这个问题,我创建了“webpack.config.js”文件并安装了 webpack、html-loader。我的看起来像这样:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm
const webpack = require('webpack'); //to access built-in plugins
module.exports = {
module: {
rules: [
{
test: /\.html$/,
use: [
{
loader: "html-loader",
options: { minimize: true }
}
]
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: './public/index.html',
})
]
};
我仍然遇到同样的错误。请帮助或提出一些建议,因为我是 webpack 的新手。
解决方案
let content = require(`../Designs/${data.path}.html`);
上面的代码是一个动态模块导入。
这意味着模块路径是在运行时(执行代码时)生成的。但是 webpack 不能处理这样的导入。
因为它在创建包时不知道模块的确切路径。
所以我认为最好导入所有文件,然后在代码中切换它们,而不是在运行时生成模块路径。
如果相信文档中的最小示例应该足以满足您的需求。
推荐阅读
- python - 熊猫:excel days360 等价物
- python - 按下键盘输入时 PYTHON 程序运行(已执行)
- ios - Animated.View + Pan Responder 导致 React Native 中的每个像素重新渲染
- c++ - 我如何将一个变量与另一个变量进行比较,例如我想要 if (var1 > var2 by 1) 然后做这个 c++
- android - 展开时 CollapsingToolbarLayout 底部的菜单项
- windows - 将子程序代码导入 FOR 循环
- assembly - x86 汇编程序中的分段错误
- java - Ubuntu 中的 Tomcat 和 IntelliJ
- vba - VBA 单循环应该循环 1000 行,但在第四行停止
- php - 我应该如何评估 Mamp、Xampp、Apache 或 Wamp 是否适合我的项目?