【发布时间】:2022-12-06 01:02:18
【问题描述】:
我正在使用 webpack 5 并试图让它与 esbuild-loader 和 ES6 模块一起工作。
在代码中,我必须加载图像的 url 以传递给其他第三方库。所以它需要相对于 webpack 捆绑它的任何地方......
以前我有这样的图像加载......
import * as DEFAULT_POSTER_URL = require("../assets/default-poster.png");
看似工作正常,但现在当我将所有内容从 requirejs 转换为 ES6 模块时,我正在尝试像这样加载相同的 URL ...
import * as DEFAULT_POSTER_URL from "../assets/default-poster.png";
但现在我变得不确定了。
我的 webpack.config.js 的规则部分看起来像这样......
rules: [
{
test: /\.(ts|tsx)$/,
loader: "esbuild-loader",
options: {
loader: "tsx",
target: "es2015"
},
exclude: /node_modules/
},
{
test: /\.(s([ac])ss)$/,
include: [path.resolve(__dirname, "./src/app/assets/sass")],
use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"]
},
{
test: /\.(png|svg|jpg|jpeg|gif)$/i,
type: "asset/resource"
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/i,
type: "asset/resource"
}
]
},
阅读一些文档,我看到还有一个 asset/inline 可以将资产作为 URL 加载,但是当我尝试更改我的图像以像那样加载时,这似乎不起作用。
【问题讨论】:
-
这回答了你的问题了吗? Webpack - Require Images Using File-Loader
标签: javascript typescript webpack es6-modules webpack-5