微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要递归地将加载程序应用于某个文件的所有依赖项

如何解决需要递归地将加载程序应用于某个文件的所有依赖项

我正在构建一个依赖单个配置文件的通用JavaScript应用程序。该配置主要包含可以在服务器上和浏览器中安全执行的代码,但是某些文件功能应仅在服务器端运行。

我已经构建了一个Babel插件,与babel-loader一起使用,并将此加载程序应用于配置文件本身以及,使用issuer Webpack规则:

相关的Webpack加载程序:

        {
          test: paths.config,use: [
            {
              loader: 'babel-loader',options: {
                plugins: [
                  [removeObjectProperties],],},{
          issuer: paths.config,

removeObjectProperties插件

function removeObjectProperties() {
  return {
    visitor: {
      ObjectProperty: function ObjectProperty(path) {
        if (['access','hooks'].indexOf(path.node.key.name) > -1) {
          // Found a match - remove it
          path.remove();
        }
      },};
}

使用上述Webpack配置,我的removeObjectProperties插件成功地从顶级配置和直接需要的所有模块中删除了所有仅服务器属性

问题是issuer Webpack规则不适用于递归。因此,如果我有配置文件所需要的文件,则不会应用加载程序。

我可以使用一些指导,以更好地实现我的目标,即通过任意数量的所需模块来递归地删除某些对象属性,或者确定以其他方式将服务器端唯一的代码与将要分离的代码分离开来。捆绑并提供给浏览器。

提前谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。