Javascript Browserify–;避免绝对路径的输出

Javascript Browserify–;避免绝对路径的输出,javascript,node.js,npm,gulp,browserify,Javascript,Node.js,Npm,Gulp,Browserify,在我的项目中,我使用Browserify(通过gulp编程)。 在我的主javascript文件中,我需要模块A和B。A也使用B。在Browserify的输出中,我可以找到模块A的绝对路径 输出如下所示: !function t(n,o,r){function e(s,a){if(!o[s]){if(!n[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(i)retur

在我的项目中,我使用Browserify(通过gulp编程)。 在我的主javascript文件中,我需要模块A和B。A也使用B。在Browserify的输出中,我可以找到模块A的绝对路径

输出如下所示:

!function t(n,o,r){function e(s,a){if(!o[s]){if(!n[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=o[s]={exports:{}};n[s][0].call(f.exports,function(t){var o=n[s][1][t];return e(o?o:t)},f,f.exports,t,n,o,r)}return o[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)e(r[s]);return e}({1:[…]
    …
10:[function(t,n){n.exports=t(9)},{"/Applications/MAMP/htdocs/Projects/xyz/node_modules/moduleA/node_modules/moduleB/index.js":9}]},{},[1]);
我怎样才能避免这种情况?我已经尝试了几种Browserify选项,但没有效果。
旁注:这两个模块是通过npm安装的,但是是从GitHub安装的,因为它们没有发布在npm上。

您需要将
完整路径设置为
false
。要获得更多压缩,请查看:


另外值得注意的是,您不需要缓冲内容,除非您正在通过管道传输到uglify或其他一些不兼容流传输的转换。

似乎bundle collapser做到了这一点。fullpath:false本身没有帮助。这将我的
vendor.js
构建从1.4MB缩减到1.1MB:)
browserify(['./app/js/main.js'], {})
  .bundle()
  //Pass desired output filename to vinyl-source-stream
  .pipe(source('main.min.js'))
  //convert from streaming to buffered vinyl file object
  .pipe(buffer())
  // Start piping stream to tasks!
  .pipe(gulp.dest('app/js/'));
var collapse = require('bundle-collapser/plugin');

browserify(['./app/js/main.js'], { fullPaths: false })
  .plugin(collapse)
  .bundle()
  //Pass desired output filename to vinyl-source-stream
  .pipe(source('main.min.js'))
  //convert from streaming to buffered vinyl file object
  .pipe(buffer())
  // Start piping stream to tasks!
  .pipe(gulp.dest('app/js/'));