2015-02-08 45 views
1

我正在使用browserify gulp捆綁應用程序。雖然構建功能,我不斷收到以下錯誤信息:如何查找錯誤原因:找不到模塊

Error: Cannot find module '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);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.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}' 

有沒有人有任何想法可能導致錯誤或如何調試它?錯誤不會出現的唯一時間是在主js文件中存在零個require語句。僅供參考下面是吞氣和main.js文件:

gulpfile

var gulp, browserify, stringify, sass, concat, uglify, source, buffer; 

gulp = require('gulp'); 
browserify = require('gulp-browserify'); 
stringify = require('stringify'); 
sass = require('gulp-sass'); 
concat = require('gulp-concat'); 
uglify = require('gulp-uglify'); 

function handleError(err) { 
    console.log(err.toString()); 
} 

gulp.task('browserify', function() { 
    return gulp.src('./src/js/**/*.js', { read: false }) 
       .pipe(browserify({ 
        transform: [stringify({ 
         extensions: ['.html'], 
         minify: true 
        })] 
       })) 
       .on('error', handleError) 
       .pipe(concat('main.js')) 
       .pipe(gulp.dest('./bin/js')); 
}); 

gulp.task('sass', function() { 
    return gulp.src('./src/scss/**/*.scss') 
       .pipe(sass()) 
       .on('error', handleError) 
       .pipe(concat('main.css')) 
       .pipe(gulp.dest('./bin/css')); 
}); 

gulp.task('index', function() { 
    return gulp.src('./src/index.html') 
      .pipe(gulp.dest('./bin')); 
}); 

gulp.task('default', ['browserify', 'sass', 'index']); 

gulp.task('watch', function() { 
    gulp.watch('./src/js/**/*.js', ['browserify']); 
    gulp.watch('./src/scss/**/*.scss', ['sass']); 
    gulp.watch('./src/index.html', ['index']); 
    gulp.watch('./src/html/**/*.html', ['browserify']); 
}); 

main.js

'use strict'; 

var $ = require('jquery'), 
    ko = require('knockout'), 
    greet = require('./components/greet'); 

window.$ = window.jQuery = $; 

function AppViewModel() { 
    var self = this; 

    self.userName = ko.observable(''); 
} 

ko.components.register('greet', greet); 
ko.applyBindings(new AppViewModel()); 
+0

您是否在瀏覽器控制檯中收到此錯誤?什麼JS文件直接從HTML中加載?縮小關閉時是否仍然出現錯誤? – Cyclone 2015-02-08 16:48:24

+0

是的,錯誤出現在瀏覽器控制檯中。從HTML中只加載一個JS文件main.js。目前沒有縮小發生,只有串接。 – Ari 2015-02-08 20:03:24

+0

你應該將其歸結爲一個最小的例子。擺脫'gulpfile'和'main.js'中所有不需要觸發錯誤的內容。發佈這些和捆綁代碼。 – JMM 2015-02-12 14:51:16

回答

0

這種情況發生時,你Concat的多個browserified文件。要解決這個問題,您只需在瀏覽器之前進行concat

gulp.task('browserify', function() { 
    return gulp.src('./src/js/**/*.js', { read: false }) 
       .pipe(concat('main.js')) 
       .pipe(browserify({ 
        transform: [stringify({ 
         extensions: ['.html'], 
         minify: true 
        })] 
       })) 
       .on('error', handleError) 
       .pipe(gulp.dest('./bin/js')); 
});