Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 网页包字符串替换加载程序不工作_Javascript_Node.js_Webpack - Fatal编程技术网

Javascript 网页包字符串替换加载程序不工作

Javascript 网页包字符串替换加载程序不工作,javascript,node.js,webpack,Javascript,Node.js,Webpack,我正在把我的项目和网页包捆绑在一起。为了操作某些文件,我必须替换特定节点模块中的特定值。为了实现这一点,我使用了字符串替换加载程序。我在我的网页配置中添加了以下代码,但没有成功 { test: /\.js$/, loader: 'string-replace', query: { search: '[MouseEvent]', replace: '[]' } } 在bundeld文件中,字符串不会被替换。这些文件位于文件夹节点_m

我正在把我的项目和网页包捆绑在一起。为了操作某些文件,我必须替换特定节点模块中的特定值。为了实现这一点,我使用了字符串替换加载程序。我在我的网页配置中添加了以下代码,但没有成功

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

在bundeld文件中,字符串不会被替换。这些文件位于文件夹节点_modules/ng2 bootstrap中。那么,我是否也必须说明这一点

您应该使用
include:[/node\u modules\/module\u name/]
,因为默认情况下,网页包不包括node\u模块

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

{
  test: /\.js$/,
  loader: 'string-replace',
  exclude: /node_modules(?!\/module_name)/
  query: {
    search: '[MouseEvent]',
    replace: '[]'
  }
}
如果您想阅读该问题

评论后编辑:

经过一些尝试,我已经完成了这项工作(使用了其他插件,但似乎与您的插件类似),我使用以下代码完成了这项工作:

  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加载程序。
请注意,错误出现在include/exclude的正则表达式上。但是我有点困惑,首先你写了include,但在这个例子中它是exclude。我猜它排除了,因为您说默认情况下排除了node\u模块,并且使用(?!\/module\u name),我猜只包括了特定的模块。我现在尝试了几种不同的方法,但都没有成功。在我看了这个问题之后,我引用了第二种方法。您尝试过“排除方法”吗?我尝试过include:[/node\u modules\/ng2 bootstrap/]和exclude:[/node\u modules(?!\/ng2 bootstrap)/]。为了进行测试,我将整个模块放在一个libs文件夹中。然后我在./custom_modules/ng2 bootstrap/ng2-bootstrap.js模块解析失败中得到以下错误消息:/node_modules/string replace loader/index.js?{“search”:“[MouseEvent]”,“replace”:“[]”,“flags”:“g”}/自定义_modules/ng2 bootstrap/ng2-bootstrap.js意外标记(2:2)您可能需要适当的加载程序来处理此文件类型。node_模块完全被忽略,但加载程序还有另一个问题。我也尝试了您使用的插件,并将模式更改为/*?(MouseEvent).*?/ig但现在我遇到了几个错误,比如:出错。/~/ng2 bootstrap/components/rating/rating.module.js模块构建失败:TypeError:无法读取未定义的属性'hasOwnProperty',我试图使用它作为预加载程序和加载程序配置,但出现了相同的错误OK,它的工作插件:)您现在的问题在于更换,你到底想换什么?