2017-10-19 97 views
0

我正在嘗試設置我的代碼庫的某些部分的服務器呈現,它正在被webpack捆綁在一起。我有明確的服務器,並設置了路線,當然,我現在碰到:在節點之前運行webpack?

(function (exports, require, module, __filename, __dirname) { import React from 'react' 
                   ^^^^^^ 

SyntaxError: Unexpected token import 
    at createScript (vm.js:56:10) 
    at Object.runInThisContext (vm.js:97:10) 
    at Module._compile (module.js:542:28) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (./server/index.js:3:67) 

這有意義的,因爲節點不能解析我的客戶端代碼庫已經捆綁了。那麼解決這個問題的最好方法是什麼?

目前我使用的WebPack 3,用一噸的插件和alieses的,和.babelrc文件

+0

爲什麼不檢查一下,看看你是否做了錯誤的事情,或者你的節點設置中可能只是缺少了一些東西https://github.com/babel/example-node-server – Maru

回答

0

你需要創建了兩個的WebPack配置。一個用於客戶端代碼,一個用於服務器。解釋如何爲服務器代碼設置webpack需要一段時間。結賬https://github.com/catamphetamine/universal-webpack欲瞭解更多信息。我建議你閱讀該包中的代碼以獲得更好的理解。我不得不說,設置一個通用(同構)webpack配置比它應該更難。還有一些其他的文章和軟件包,你可能會覺得有用。

根據經驗,這些都是你需要的服務器代碼設置的WebPack時要考慮的主要位:

集「目標」到「節點」

巴貝爾:結帳https://github.com/babel/babel/tree/master/experimental/babel-preset-env

使用webpack-node-internals

集 「節點」 這些選項:

{ 
    console: true, 
    global: true, 
    process: true, 
    Buffer: true, 
    __filename: true, 
    __dirname: true, 
    setImmediate: true 
} 
  • 請勿爲您的服務器代碼使用webpack dev服務器。輸出到文件,然後在該文件上使用nodemon。

還有其他幾點需要考慮,但這些是主要關注點。

相關問題