【发布时间】:2016-02-23 13:49:16
【问题描述】:
我有一个同构模块,我想在单个文件中发布。
使用 webpack 构建 web 是微不足道的。但是,对于target: 'node',我不想在输出中包含任何依赖项,因为它们保留在package.json 中,并且应该与标准require 一起使用。
有没有办法告诉 webpack 只挂钩到源目录中的 requires ,而保持其他需求(例如 require('lodash'))不变?
我发现的一个解决方法是使用externals 并将一些required 模块注入到输出文件中:
// 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) {
}
})
【问题讨论】: