Browserify 无法使用 babelify 转换创建包(类型错误:路径必须是字符串。)

2023-11-21

我编写了一个 gulp 任务,使用 watchify 和 babelify 作为转换将我的 .jsx 和 .js 脚本编译成一个包。由于某种原因,我的 gulp 脚本似乎在转换时被阻塞,我不知道为什么:

gulp.task('browserify', function() {
  var bundle = watchify(browserify('./app/jsx/client/index.jsx', {
    extensions: ['.js', '.jsx'],
    debug: process.env.NODE_ENV === 'development'
  }));
  bundle.transform(babelify);
  bundle.on('update', function() {
    rebundle(bundle);
  });


  function rebundle(bundle) {
    return bundle.bundle()
    .on('error', function(error) {
      console.log(error.stack, error.message);
      this.emit('end');
    })
    .pipe(
        gulpif(
          (process.env.NODE_ENV == 'production'),
          require('gulp-rename')('bundle.min.js'),
          require('gulp-rename')('bundle.js')
        )
    )
    .pipe(gulpif((process.env.NODE_ENV == 'production'), buffer()))
    .pipe(gulpif((process.env.NODE_ENV == 'production'), uglify()))
    .pipe(gulp.dest('dist/js'));
  }

  return rebundle(bundle);
});

在控制台中...

path.js:8
    throw new TypeError('Path must be a string. Received ' +
    ^

TypeError: Path must be a string. Received undefined
    at assertPath (path.js:8:11)
    at Object.posix.join (path.js:480:5)
    at Transform.stream._transform (/home/zipp/search-admin/node_modules/gulp-rename/index.js:52:22)
    at Transform._read (_stream_transform.js:167:10)
    at Transform._write (_stream_transform.js:155:12)
    at doWrite (_stream_writable.js:292:12)
    at writeOrBuffer (_stream_writable.js:278:5)
    at Transform.Writable.write (_stream_writable.js:207:11)
    at Readable.ondata (/home/zipp/search-admin/node_modules/browserify/node_modules/read-only-stream/node_modules/readable-stream/lib/_stream_readable.js:572:20)
    at emitOne (events.js:77:13)
    at Readable.emit (events.js:169:7)

该错误是因为你需要一个vinyl-source-stream在那里。的结果.bundle()是文件数据的标准节点流。您正在将数据传递给rename需要 Gulp 流File对象。

var source = require('vinyl-source-stream');

// stuff

  function rebundle(bundle) {
    return bundle.bundle()
    .on('error', function(error) {
      console.log(error.stack, error.message);
      this.emit('end');
    })
    .pipe(
        gulpif(
          (process.env.NODE_ENV == 'production'),

          // Use 'source' here instead, which converts binary
          // streams to file streams.
          source('bundle.min.js'),
          source('bundle.js')
        )
    )
    .pipe(gulpif((process.env.NODE_ENV == 'production'), buffer()))
    .pipe(gulpif((process.env.NODE_ENV == 'production'), uglify()))
    .pipe(gulp.dest('dist/js'));
  }

而不是使用rename, 您可以使用source定义文件的初始名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Browserify 无法使用 babelify 转换创建包(类型错误:路径必须是字符串。) 的相关文章

随机推荐

  • ui-router $stateChangeStart 上的无限循环

    加大力度angular and 用户界面路由器 如果不满足先决条件 则很难重定向到不同的状态 我尝试使用拦截器 如何在角度拦截器中执行重定向 但有人提到处理 stateChangeState 会更合适 但我仍然陷入无限循环 Check he
  • Angular - 组件不同的模板

    我有一个组件 课程 我将此组件用于列表 该列表有时是水平的 有时是垂直的 我可以在组件内部动态选择模板文件吗 Component selector course templateUrl getTemplateFile 像这样的东西将是很棒的
  • Global.asax 中的事件未触发

    在我的 ASP Net 应用程序中 我无法在我的计算机上触发 Global asax 中的事件 例如 Session Start 将不会触发 同样的 Global asax 在我办公室的其他开发机器上运行良好 我努力了 ASP Net 开发
  • 我可以对指向 void 指针的指针使用指针算术吗?

    我知道你不能对 void 指针使用指针算术 但是理论上你可以对指向 void 指针的指针进行指针算术吗 因为sizeof void 会产生一个指针在您的系统上占用多少字节的答案 不允许进行指针运算void 因为void是一个不完整的对象类型
  • 以编程方式初始化 ViewController

    我正在尝试初始化一个UIViewController在我的 Swift 应用程序中 但我面临一个问题 我找不到任何明确的答案 我想从 FlowCoordinator 调用它来初始化控制器 但由于需要 init coder NSCoder 函
  • C++ Switch 无法使用用作 case 的外部定义变量进行编译

    我正在使用 MinGW GNU 编译器编写 C 当我尝试使用外部定义的整数变量作为 switch 语句中的 case 时 就会出现问题 我收到以下编译器错误 case 标签不会减少为整数常量 因为我已将整数变量定义为 extern 我相信它
  • Bootstrap Modals 和 Youtube:自动播放并在关闭时停止

    我需要能够在 Twitter Bootstrap 模式打开时自动播放 YouTube 视频 然后在关闭时停止该视频 我知道这个问题之前已经被问过 但我能找到的答案会导致包含许多视频的页面出现大量 javascript 代码 我正在努力减少膨
  • 如何在 IVY 中没有提供的情况下复制运行时库

    我以为我不需要问这个 但我没有任何进展 这个问题的解答 ivy如何将maven范围映射到ivy配置实际上解决了问题 但在理论部分 我有这样的配置
  • 如何为类的私有和公共成员分配内存

    在类中 私有成员是与公共成员分配在单独的内存中 还是所有成员都按照其定义的顺序分配 例如 class A private int a1 int a2 3 public int z int a3 2 int a4 5 private int
  • System.UnauthorizedAccessException:对路径“...”的访问被拒绝

    我使用 net 使用单击一次安装完成了 C wpf 安装 一切正常 然后我有以下代码 它是已安装程序的一部分 String destinationPath System Windows Forms Application StartupPa
  • 检测输入类型文本的编程更改[重复]

    这个问题在这里已经有答案了 当脚本更改输入类型文本的值时 有没有办法获得通知 I have
  • R:从字符串中删除最后三个点

    我有一个文本数据文件 我可能会用它来读取readLines 每个字符串的初始部分包含很多乱码 后面是我需要的数据 乱码和数据通常由三个点分隔 我想在最后三个点之后分割字符串 或者用某种标记替换最后三个点 告诉 R 将这三个点左侧的所有内容视
  • 将 scipy.stats.gaussian_kde 与二维数据一起使用

    我正在尝试使用the scipy stats gaussian kde class把一些离散的经纬度信息采集到的数据进行平滑处理 所以最后看起来有点像等高线图 密度高的就是峰 密度低的就是谷 我很难将二维数据集放入gaussian kde班
  • CakePHP 控制器别名

    我知道还有一些关于这个主题的其他主题 但似乎没有一个适合我的需要 我拥有的 example com log 日志控制器 php I have LogsController代替LogController 复数 因为 CakePHP 希望你有复
  • 应用程序服务器和 servlet 容器之间的区别?

    我试图理解成熟的应用程序服务器 例如 Weblogic JBoss 等 和 servlet 容器 Tomcat Jetty 等 之间的区别 它们有何不同以及何时使用哪个 Thanks servlet 容器仅支持 servlet API 包括
  • 整页 Malloc

    我试图通过一次使用整个页面来优化程序的内存分配 我正在获取这样的页面大小 sysconf SC PAGESIZE 然后计算适合页面的元素总数 如下所示 elements pageSize sizeof Node 我在想 当我真正去 mall
  • C# - PowerStatus 更改时引发事件

    我创建了一个需要处于安全状态的应用程序 因此我想在后台跟踪计算机的电源状态 如果电池电量 如果有 较低或严重 我不会允许用户继续使用该应用程序并正确退出 首先 我很惊讶不存在这样的事件来检测变化 您始终需要手动检查电源状态 所以 我围绕它创
  • 如何使用库调用计算 C# 中的阶乘?

    我需要计算 100 左右的数字的阶乘 为了确定一系列硬币翻转式数据是否是随机的 根据这是关于贝叶斯概率的维基百科条目 正如您所看到的 必要的公式涉及 3 个阶乘计算 但有趣的是 其中两个阶乘计算是在第三个阶乘计算的过程中计算的 I saw
  • JAXB - 从 url 解组

    我正在尝试显示此网站的游戏标题和 ID http thegamesdb net api GetGame php id 2 当我从这个网址解组时 http www w3schools com xml note xml一切都很好 但这里只是一个
  • Browserify 无法使用 babelify 转换创建包(类型错误:路径必须是字符串。)

    我编写了一个 gulp 任务 使用 watchify 和 babelify 作为转换将我的 jsx 和 js 脚本编译成一个包 由于某种原因 我的 gulp 脚本似乎在转换时被阻塞 我不知道为什么 gulp task browserify