0
隨着Browserify API和咕嘟咕嘟的,我有這樣的:隨着Browserify API,使用要求,並排除對本地文件
var browserify = require('browserify');
var gulp = require('gulp');
var source = require('vinyl-source-stream');
var dependencies = [
'lodash',
'./test.js',
];
gulp.task('lib', function() {
return browserify()
.require(dependencies)
.bundle()
.pipe(source('lib.js'))
.pipe(gulp.dest('./'));
});
gulp.task('app', function() {
return browserify('./app.js')
.external(dependencies)
.bundle()
.pipe(source('bundle.js'))
.pipe(gulp.dest('./'));
});
而在app.js
我有這樣的:
var _ = require('lodash');
var test = require('./test.js');
的Lodash行工作正常,但./test.js
不起作用。我收到錯誤Error: Cannot find module '/test.js'
。
我如何得到這個工作?
由於某些原因,bundle.js
和lib.js
之間的關鍵不同。在lib.js
中,test.js
的密鑰是完整路徑(/Users/gary/Projects/browserify-test/test.js
),而在bundle.js
中,它正在尋找具有密鑰./test.js
的模塊。如果我手動將後者更改爲與前者相同,則可以使用。
我猜測,最終,Browserify不支持require
對從同一捆綁包中排除的本地文件。
我假設你已經出口你的代碼在test.js中? – Federico
是的,我已經出口了。這是一個合適的模塊。如果這兩個軟件包位於單個文件中,它將起作用。 – Gary
嘗試路徑選項:return browserify({paths:['./node_modules','./src/js/']}),然後require('test.js');應該可以工作 – Federico