gpt4 book ai didi

javascript - Webpack 字符串替换加载程序不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 00:34:19 24 4
gpt4 key购买 nike

我正在将我的项目与 webpack 捆绑在一起。为了操作某些文件,我必须替换某个 Node 模块中的特定值。为了实现这一点,我使用了字符串替换加载器。我将以下代码添加到我的 webpack 配置中,但没有成功。

  {
test: /\.js$/,
loader: 'string-replace',
query: {
search: '[MouseEvent]',
replace: '[]'
}
}

在bundeld 文件中,该字符串不会被替换。这些文件位于文件夹 node_modules/ng2-bootstrap 中。那么我也必须指定这一点吗?

最佳答案

你应该使用include: [/node_modules\/module_name/]因为webpack默认排除node_modules。

但是在阅读类似问题的问题时,可能您必须使用“排除,包含”,如下所示:

{
test: /\.js$/,
loader: 'string-replace',
exclude: /node_modules(?!\/module_name)/
query: {
search: '[MouseEvent]',
replace: '[]'
}
}

如果您想阅读该问题,go here .

评论后编辑:

经过一番尝试,我已经做到了这一点(使用其他插件,但看起来像你的),我已经用以下代码做到了:

  preLoaders: [
{
test: /\.js$/,
loader: StringReplacePlugin.replace({
replacements: [
{
pattern: /.*?(react).*?/ig,
replacement: function (match, p1, offset, string) {
console.log("found");
return "found";
}
}
]}),
include: /node_modules\\react.*/
}
],

它可能适用于加载器,但我只适用于预加载器,因为我已经有一个 js 加载器。请注意,错误出现在包含/排除的正则表达式上

关于javascript - Webpack 字符串替换加载程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39791574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com