Node.js 在NodeJS中执行webpack编译包

Node.js 在NodeJS中执行webpack编译包,node.js,reactjs,webpack,server-side-rendering,Node.js,Reactjs,Webpack,Server Side Rendering,我想为我的ReactJS应用程序实现服务器端渲染。我使用react路由器。我将routes.js作为网页包的入口点,并使用output.libraryTarget=“commonjs2”选项进行编译。然后我需要在NodeJS脚本中编译的结果来进行渲染。但我有个错误。 用以下代码包装模块: /* 277 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(functio

我想为我的ReactJS应用程序实现服务器端渲染。我使用
react路由器
。我将
routes.js
作为网页包的入口点,并使用
output.libraryTarget=“commonjs2”
选项进行编译。然后我需要在NodeJS脚本中编译的结果来进行渲染。但我有个错误。 用以下代码包装模块:

/* 277 */
/***/ function(module, exports, __webpack_require__) {

    /* WEBPACK VAR INJECTION */(function(Buffer, global) {
    if (global.foo) {
        /* ... */
    }
    /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(277).Buffer, (function() { return this; }())))

 /***/ }
当NodeJS试图执行
(function(){return this;}())
时,其返回值
未定义
。在浏览器中,它将返回
窗口
。为什么网页包使用这样的包装代码?如何使此代码在NodeJS中工作


我使用它作为外部库。它不使用任何其他lib作为依赖项。但其捆绑包中的webpack作为此库的依赖项。在
缓冲区内
代码中,我遇到了一个错误
无法读取未定义的属性“TYPED\u ARRAY\u SUPPORT”
。这是因为在nodeJS
(function(){return this;}())
return
undefined

中,默认情况下,webpack将为浏览器打包。如果要使用webpack构建节点库,需要在配置中指定:

module.exports={
// ...
目标:'节点',
};

你有没有在你的网页配置中尝试过
目标:“节点”
?这正是我想要的:)谢谢@joshdavidillergreat!我把这个作为一个答案放在下面,这样我们就可以让其他人知道它已经解决了。