Browserify中的require.context()等价物

时间:2016-11-15 21:53:01

标签: javascript webpack browserify

在使用Webpack的项目中,我们可以使用require.context()将一些.js文件导出到一个模块中。所以在modules目录中,有几个模块:

modules
-counter.js
-index.js
-mod2.js
somefile.js

counter.jsmod2.js是模块。 index.jsrequire.context()

const files = require.context('.', false, /\.js$/)
const modules = {}

files.keys().forEach((key) => {
   if (key === './index.js') return
   modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default
})

export default modules

因此,在modules文件夹以外的单独文件somefile.js中,我可以执行此操作:

import modules from './modules';
new Something({
  modules
});

但是require.context()仅在Webpack中。由于Browserify与Webpack相当,是否有与此相同的Browserify?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,最终使用require-bulk npm模块,然后使用bulkify来实现Webpack的require.context所期望的效果。 在您的index.js文件中,它将类似于:

const bulk = require('bulk-require')
bulk(__dirname, ['./**/!(*.index).js'])

这将包括目录中的所有文件