我有在大口與browserify捆綁幾個JS模塊:如何導出瀏覽過的模塊以便在瀏覽器中進行瀏覽?
gulp.task('build:js', ['clean:js'], function() {
browserify({
debug: true,
entries: paths.js.src
})
.transform('babelify', { presets: ['es2015'] })
.bundle()
.pipe(source('bundle.js'))
.pipe(buffer())
.pipe(gulp.dest(paths.js.dist));
});
它輸出單個bundle.js
。但是,像這樣捆綁時,我不能在瀏覽器中使用require
個別模塊。我希望這樣做,因爲我不希望始終啓動每個模塊(有些是頁面特定的)。相反,我希望能夠在捆綁的頁面上使用var someModule = require('some-module');
。
現在我在文檔中找不到任何關於此的內容,因爲它只記錄命令行選項(而不是js api)。 This answer顯示模塊可能是需要的並且從一口吞下暴露出來,但是這會暴露我的整個捆綁包,而不是它所組成的模塊。
解決方案是將所有模塊分開捆綁,排除依賴關係(因此它們不會在捆綁包中重複),然後將它們連接起來。但是,這並不真的看起來像,因爲可行的解決方案:
- 模塊可能有麻煩解析相關,因爲一切是分開捆綁,從而依賴將不得不在瀏覽器中得到解決。我認爲不理想,容易發生破損。
- 由於我使用了很多模塊,因此非常費力,每個模塊都必須手動導出,排除依賴關係並在我的模板中引用。 There are ways to automate it,但這並不排除共享依賴關係。
那麼我該如何解決這個問題?我如何要求我的js在瀏覽器中單獨編寫的包,供客戶端使用?
你會想看看代碼塊。不幸的是,在Webpack中這很容易。 – ceejayoz