我想爲我的ReactJS應用程序實現服務器端渲染。我使用react-router
。我將routes.js
作爲webpack入口點,並使用output.libraryTarget = "commonjs2"
選項進行編譯。然後我需要在NodeJS腳本中編譯的結果進行渲染。但我有錯誤。 在下面的代碼的WebPack渦卷模塊:在NodeJS中執行webpack編譯的軟件包
/* 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; }())
其返回undefined
。在瀏覽器中,它將返回window
。爲什麼webpack使用這種包裝代碼?如何使這個代碼在NodeJS中工作?
我使用node-clone作爲外部庫。它不使用任何其他庫作爲依賴。但是在它的包中的webpack使得buffer成爲這個lib的一個依賴。並且在buffer
代碼中,我得到了en錯誤Cannot read property 'TYPED_ARRAY_SUPPORT' of undefined
。發生這種情況是因爲在nodeJS (function() { return this; }())
中返回undefined
。
你試過'目標:「node''在你的WebPack配置? –
這正是我想要的:)謝謝@JoshDavidMiller –
太棒了!我把這個作爲答案放在下面,這樣我們可以讓其他人知道它已經解決了。 –