如何使用Webpack为“节点”目标打包一个没有依赖关系的模块?

时间:2016-02-23 00:11:56

标签: node.js webpack

我有一个同构模块,我想在一个文件中发布。

使用webpack构建Web是微不足道的。但是,对于target: 'node',我希望不在输出中包含任何依赖项,因为它们会保留在package.json中,并且应该可以使用标准require

有没有办法告诉webpack挂钩只需要在源目录中,但是保持其他需求(例如require('lodash'))不受影响?

解决方法我发现使用externals并将一些require d模块注入输出文件:

// webpack.config

const externals =
  _(fs.readdirSync('node_modules'))
  .reject(s => /^\./.test(s))
  .keyBy().mapValues((v, k) => _.camelCase(v))
  .value()


module.exports = {
  ...
  externals,
  ...
}

// output file, assuming I'm injecting externals somehow:

Object.keys(externals).forEach(function (name) {
  try {
    global[externals[name]] = require(name)
  } catch (e) {
  }
})

1 个答案:

答案 0 :(得分:0)