2015-04-15 41 views
2

我有幾乎完全相同的問題,如在Gulp with browserify: Cannot find module src/js/main.js中所述:我有一個JavaScript項目,我可以使用從命令行browserify,但不是吞噬。但是這個問題的解決方案對我來說並不適用。吞噬與browserify:找不到啓動模塊

在命令行:

browserify -t reactify ./js/inspector > static/js/inspector.js 

完美。當我運行以下一飲而盡任務:

gulp.task('browserify', function() { 
    return browserify({ 
     transform: ['reactify'], 
     entries: ['./js/inspector.js'] 
    }) 
    .bundle() 
    .pipe(source('inspector.js')) 
    .pipe(gulp.dest('./static/js/')); 
}); 

,並運行它,我得到以下錯誤在控制檯:

Error: Cannot find module '../../inspector' 

而且生成的文件具有相同的長度CLI文件,但不相同的模塊順序。其中困惑我。

我在我的全局和本地模塊中擁有相同版本的browserify,並且我沒有在任何地方明知故障地配置它。

不同於本戴維斯,誰問另一個問題,添加一個./到我的路徑開始沒有改變。

我不明白爲什麼在瀏覽器運行時,爲什麼browserify會提供不同的輸出。

更新:該項目的目錄結構:

gulpfile.js 
node_modules/ 
js/     (also contains subdirectories with JS code) 
    inspector.js 
static/ 
    js/ 
     inspector.js (built) 

更新:當我在抱怨中運行Browserify,我也得到一個不同的文件,但它的作品。

+0

你能給我們一個你的文件夾結構的想法嗎? – joshvito

+0

@joshvito我已經添加了。 –

+0

[吞食與browserify:無法找到模塊src/js/main.js]的可能重複(http://stackoverflow.com/questions/27277666/gulp-with-browserify-cannot-find-module-src-js-main -js) – SomeKittens

回答

0

我有這樣的要求的根模塊等模塊,點菜:

var inspector = require('../../inspector');

這是什麼原因造成的問題(不知)。放入一個根本不需要的根模塊可以讓gulp + browserify毫無問題地工作。

我會看看我是否可以爲gulp/browserify維護人員創建一個最小複製項目。

0

你可以嘗試將你的返回函數包裝在一個IIFC中。

//====================================== 
// Task: browserify 
//====================================== 
gulp.task('browserify', function() { 
    return (function() { 
    browserify(config.src) 
     .bundle() 
     .pipe(source(config.name)) 
     .pipe(gulp.dest(config.dest)); 
    })(); 
}); 

我在當前的項目中成功地使用了上述方法。

+0

我試過這個,效果相同:生成具有相同大小的不同文件,並且出現相同的錯誤消息在瀏覽器中。 –