javascript - Webpack - 如何识别某些包并将其从渲染中排除?

标签 javascript reactjs webpack

我正在使用react-stdio server 在服务器端渲染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构建中的变量?

最佳答案

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

Target: "node" Compile for usage in a node.js-like environment (use require to load chunks)

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

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

关于javascript - Webpack - 如何识别某些包并将其从渲染中排除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774148/

相关文章:

javascript - JQuery Accordion - 自下而上而不是自上而下

javascript - 如何使用 javascript 对输入元素进行排名

javascript - 检测子组件在 React.js 中是否具有特定的 mixin/方法

javascript - 库中的 React Router 问题 - 使用 <Router> 之外的元素

javascript - 如何将文件从 public 复制到 dist?

javascript - webpack 中的 module[moduleId] 在 Firefox Quatum 58.0b16 中未定义

javascript - 将属性添加到元素 Javascript

javascript - Angularjs 获取嵌套 JSON 值

javascript - 使用 ReactDOMServer.renderToString 将 gatsby-image 注入(inject)从 markdown 创建的 html

webpack - Visual Studio 代码 ESLint 扩展 : Use . gitignore 作为 .eslintignore?