Node.js 在NodeJS中执行webpack编译包
我想为我的ReactJS应用程序实现服务器端渲染。我使用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
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;}())
returnundefined
中,默认情况下,webpack将为浏览器打包。如果要使用webpack构建节点库,需要在配置中指定:
module.exports={
// ...
目标:'节点',
};
你有没有在你的网页配置中尝试过目标:“节点”
?这正是我想要的:)谢谢@joshdavidillergreat!我把这个作为一个答案放在下面,这样我们就可以让其他人知道它已经解决了。