【问题标题】:Webpack bundled library is different from the one in a Node.js source fileWebpack 捆绑库与 Node.js 源文件中的库不同
【发布时间】:2016-11-09 21:26:44
【问题描述】:

我有一个文件:

// in.js

var util = require('util')
console.log(typeof util.inspect.defaultOptions)

使用 Node.js 运行时效果很好:

C:\Users\artur\tmp>node in.js
object

但如果我将它与 Webpack 捆绑在一起,它就会停止工作:

C:\Users\artur\tmp>webpack in.js out.js
Hash: c12d8f247c3fe30a8896
Version: webpack 1.13.3
Time: 169ms
 Asset     Size  Chunks             Chunk Names
out.js  24.3 kB       0  [emitted]  main
   [0] ./in.js 85 bytes {0} [built]
    + 4 hidden modules

C:\Users\artur\tmp>node out.js
undefined

我有:

  • Node.js 版本 7.0.0
  • Webpack 版本 1.13.3
  • npm 版本 3.10.8
  • Windows 10

【问题讨论】:

  • 你的 webpack 配置中有 target: 'node', 吗?
  • 看起来通过webpack 捆绑的util 模块与Node 本身中的模块不同。您是否希望仅将其与 Node 一起使用?
  • @Keith:不,目标是默认的(“web”)。尝试将其显式设置为“网络”,结果相同
  • @AlexanderO'Mara:不,我想捆绑网络
  • 如果你的 web 捆绑,那么很有可能会有不同,因为 util 将是一个 polyfill。如果您相信 util inspect.defaultOption 对浏览器很方便,您最好联系 polyfill 的开发人员。 github.com/defunctzombie/node-util 可能会发布问题。

标签: javascript node.js webpack


【解决方案1】:

util 特定于节点环境。您不能将其捆绑在 webpack 中以在浏览器中提供。

如果你想排除这种与webpack捆绑的代码,你可以看看webpack.configexternals的配置和webpack-node-externals插件。

externals: require('webpack-node-externals')()

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 2017-05-12
    • 2017-02-27
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多