GULP - 在一个流

时间:2015-12-30 14:47:48

标签: javascript gulp browserify watchify

我正在开发一个大型Web应用程序。我正在使用Gulp构建javascript文件和Browserify。

问题在于,当我处于开发模式时,每次进行更改时都需要花很多时间来重建我的javascript包(使用手表)

对于我的应用程序,我需要使用特殊订单将所有javascript文件打包到一个文件中:

  • 所有供应商文件(包括bootstrap jquery等..)
  • 一些需要浏览的文件(使用commonJS样式) require('...');
  • 某些需要浏览器化和文件化(.jsx文件)
  • 的文件

由于我不想在文件之间浪费时间等待浏览器捆绑所有文件(平均20-25秒......),我决定将流程拆分为3个构建为异步的捆绑包然后合并所有3个临时捆绑到一个。 (通过这种方式,第一次构建只需要15秒,如果我使用watchify对文件进行一次更改,重建时间仅需2秒,而不是20秒。)

我的问题是,当我使用一个管道捆绑最终文件时,使用browserify和debug: true选项,我可以在chrome开发者控制台中分别访问所有源文件,这要归功于browserify调试选项因为只生成了一个源图文件。

但是现在有3个管道,每个管道都会构建自己的源图,当我在最后一个管道中合并3个临时包时,gulp-sourcemaps  插件和loadMaps: true选项,Web浏览器控制台上发生错误(因此应用程序不起作用)。如果我在browserify选项上关闭debug: true,它可以正常工作,但我不能调试每个JS文件separalty。我只有100K行的最终文件......

有人可以帮我找到正确的源图吗?

这是抛出的错误

if (file.isNull() || file.sourceMap) {
             ^

TypeError: Object (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({ 
has no method 'isNull'
    at DestroyableTransform.sourceMapInit [as _transform] (/space/iadvize.com/Deploy/releases/20151230085529/desk/node_modules/gulp-sourcemaps/index.js:20:14)

由于此错误,我无法合并所有browserify包生成的源图。

0 个答案:

没有答案