2

webpackの構成内のプラグインセクションを使用して、ノードサーバー(エクスプレス)と一緒にwebpack devサーバーを適切に使用することができました。

それはすべて正常に動作しますが、今は同型になり、高速アプリケーション内でクライアント側のコンポーネントを使用しようとしています。

これまでのところ、私が遭遇している唯一の問題は、webpack がサーバー側のコードを「解析」しないと、コンポーネントが必要であるがパスが解決されないという状況になることです。

IE

コンポーネントの内部

'use strict';

import React from 'react';
import { RouteHandler, Link } from 'react-router';
import Header from 'components/header/main'; // <-- This line causes the error because webpack is not working when parsing this JSX server-side

export default React.createClass({
    displayName: 'App',
    render() {
        return ( // ... More code

別の方法で webpack を構成する必要がありますか、それともすべてのインポートを有効なサーバー側に変更する必要がありますか?

実際の状態を確認したい場合に備えて、コードベースはこちらhttps://github.com/vshjxyz/es6-react-flux-node-quickstart

4

2 に答える 2

3

次のような方法でコンポーネントを要求し、require('components/Header.js');長い相対パスの使用を避けるためrequire('../../../../../../Header.js');に、require() 呼び出しの前にこのコードをノード アプリに追加できます。

process.env.NODE_PATH = __dirname;
require('module').Module._initPaths();

ただし、これは非公開の Node.js コア メソッドに依存しているため、ノードの前または次のバージョンで動作しなくなる可能性があるハックでもあります。

この問題に対するその他の可能な解決策は、https://gist.github.com/branneman/8048520にあります。

于 2015-06-04T10:10:27.043 に答える