如何忽略browserify programmatic api中的库

假设在bundler.jsfind以下代码,并且跟踪entry.js会导致var B = require('backbone'); (Backbone是在package.json声明的依赖项)。

 var browserify = require('browserify'); var bundle = new browserify(); bundle.add('entry.js'); bundle.bundle({ noParse: ['backbone'] }); 

执行这个捆绑器会产生一个包含原始backbone源的stream。 基于browserify的命令行选项,我预计它会跳过所有主干。 通过阅读来源,我预计可能会有以下工作:

 var browserify = require('browserify'); var bundle = new browserify({ noParse: ['backbone'] }); bundle.add('entry.js'); bundle.bundle(); 

虽然backbone资源仍然出现在stream输出。

是否有可能使用--noparse=FILE作为api的这个应用程序中的configuration选项?

 var browserify = require("browserify") browserify({entries: ['./src/client/app.js']}) .ignore('jquery') 

这将使browserify忽略jquery,然后jquery可以直接添加到index.html。

从这里可以看到,命令行上提供的--noparse选项会传递给browserify({ })调用。

所以为了告诉browserify不要parsingjquery和three.js,你必须把完整的path传给你的jquery和three.js文件。

例:

 browserify({ noParse: [ require.resolve('./vendor/jquery'), require.resolve('./vendor/three') ] }) .require(require.resolve('./entry.js'), { entry: true }) .bundle();