2017-10-19 2 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) 

:もちろん私は今に実行するが、私は、特急サーバーおよびセットアップのルートを持っています。だから、これを回避する最善の方法は何ですか?

は、現在、私はプラグインやaliesesのトン、および.babelrcファイルセットアップ2 WebPACKの構成に必要

+0

あなたが何か間違っているのか、何かがあなたのノード設定で欠落しているかどうかをチェックするのはなぜですか?https://github.com/babel/example-node-server – Maru

答えて

0

で、WebPACKの3を使用しています。 1つはクライアントコード用、もう1つはサーバー用です。 webpackにサーバコードを設定する方法については、しばらく時間がかかります。詳細はhttps://github.com/catamphetamine/universal-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を使用します。

これ以外にも考慮すべき点がいくつかありますが、これが主な懸案事項です。

関連する問題