javascript - 如何查找错误 : Cannot find module 的原因

标签 javascript gulp browserify commonjs

我正在使用 gulp 和 browserify 来捆绑应用程序。当构建正常运行时,我不断收到以下错误消息:

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 语句为零。以下是 gulp 和 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());

最佳答案

当您连接多个浏览器化文件时会发生这种情况。要解决这个问题,您只需在 browserify 之前进行 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'));
});

关于javascript - 如何查找错误 : Cannot find module 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28396254/

相关文章:

javascript - 使用 PHP 填充 Bootstrap 输入 - 字符串变量中出现空格错误

javascript - Bookshelf.js - hasOne 关系运行不正常

javascript - 如何在按键时更改按钮的背景颜色?

javascript - "TypeError: Cannot read property ' 运行 Gulp 时映射 ' of undefined"

javascript - 在运行时打包客户端脚本并支持 Common.js

javascript - Browserify 需要使用 Browserify 构建的 vendor 模块

javascript - 如何在 asp.net 中回发后更改 html td 元素的颜色?

node.js - 合并NodeJS流时如何调用 `setMaxListeners`

reactjs - 哪些模块可以在 webpack 解决方案中去除调试?

node.js - Vueify/Browserify 在标准配置下抛出 ENOENT