Webpack - 如何从渲染中识别和排除某些包?

时间:2016-08-04 17:47:29

标签: javascript reactjs webpack

我正在使用react-stdio服务器在服务器端渲染react.js。

Webpack呈现的javascript文件包含以下行:

 /***/
 /* 49 */
 /***/ function(module, exports, __webpack_require__)
 »·/* WEBPACK VAR INJECTION */(function(global) {/* global window */             
 »·'use strict';                                                                 

 »·module.exports = __webpack_require__(50)(global || window || this);           

 »·/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))  

 /***/ },                                                                        
 /* 50 */                                                                        
 /***/ function(module, exports) { 

问题是react-stdio不喜欢window变量:react-stdio返回给我ReferenceError: window is not defined。所以,问题:

  1. 我如何理解哪个依赖项被标记为#49?
  2. 如何从构建中消除此window变量?

1 个答案:

答案 0 :(得分:1)

尝试将target: 'node'添加到您的webpack.config中。根据webpack文档:

  

目标:"节点"编译以在类似node.js的环境中使用(使用require to   加载块)

module.exports = {
  entry: './src/main.js',
  target: 'node',
  output: {
    path: path.join(__dirname, 'build'),
    filename: 'backend.js'
  }
}

如果这不起作用,请尝试本教程 - Backend Apps with Webpack(示例来自它)。