2015-12-15 55 views
1

我正在使用Browserify API編寫一個小腳本,並遵循自述文件hereBrowserify api:如何將高級選項傳遞給腳本

除了當我需要通過advanced options下列出的標誌時,所有的工作都可以正常工作,對於這些標誌似乎沒有API覆蓋。我想通過的是--node標誌。

var b = browserify({ 
entries: ['src/index.js'], 
    cache: {}, 
    ignoreWatch: ['**/node_modules/**', './dist/'], 
    packageCache: {}, 
    plugin: [watchify, babelify], 
    debug: true, 
    node: true // => this options does not actually exist, so it does nothing 
}); 

b.on('update', bundle); 

function bundle() { 
    b.bundle() 
    .pipe(fs.createWriteStream('bundle.js')); 
} 

在命令行下將其轉化爲watchify src/index.js --node -o bundle.js(和它的作品)。

我認爲,在文檔,上面寫着一行:

所有其他選項一起被轉發到直接模塊DEPS和瀏覽器的包。

可能包含一些幫助,但它不清楚如何。任何關於這個的指針?

回答

2

看了Browserify的源代碼後,我想出了我自己的問題的答案。

我只需運行watchify src/index.js --node -o bundle.js命令並記錄傳遞給Browserify.prototype._createPipeline函數的選項。

在我的情況下,代碼將成爲:

var b = browserify({ 
entries: ['src/index.js'], 
    cache: {}, 
    ignoreWatch: ['**/node_modules/**', './dist/'], 
    packageCache: {}, 
    plugin: [watchify, babelify], 
    debug: true, 
    fullPaths: false, 
    builtins: false, 
    commondir: false, 
    bundleExternal: true, 
    basedir: undefined, 
    browserField: false, 
    detectGlobals: true, 
    insertGlobals: false, 
    insertGlobalVars: 
    { process: undefined, 
    global: undefined, 
    'Buffer.isBuffer': undefined, 
    Buffer: undefined }, 
    ignoreMissing: false, 
    standalone: undefined 
}); 

我最終去掉了一些從我的腳本這些選項,因爲大多數都只是默認值,但我會留在他們的答案以供將來參考,希望其他人無論如何都會從中受益。

相關問題