React içinde izomorfik rendering kullanmaya çalışıyorum, bu yüzden statik HTML'leri uygulamamın belgeleri olarak verebiliyorum.Komut dizimin Webpack tarafından işlenip işlenmediğini tespit edebilir miyim?
Sorun şu ki, yalnızca istemcide çalışan belirli bir bileşenim var, çünkü window
. Çözüm açıktır: Sunucuda işlemek için değil. Evet, sunucu üzerinde işlem yapamıyorum, ancak yine de, webpack
paketime dahil edilmesine ihtiyacım var, böylece istemci üzerinde oluşturabiliyorum. webpack
donatılacak zaman
function isServer() {
return ! (typeof window != 'undefined' && window.document);
}
Ama isServer()
da true
ve webpack
çalışırken ben normalde çalışmak istiyorum: Sorun sunucuda render benim bileşeni engelleyen kodu olmasıdır.
webpack
'un çalıştığını nasıl anlarım?
böyle bir şey arıyorum:
function isWebpack() {
// what do I put here?
}
Şimdi müvekkilim yalnızca bileşeni normalde eğer isServer()
ve !isWebpack()
hale getirebilir.
Teşekkürler!
DÜZENLEME
Bu benim kurmaya çalışıyorum bileşenidir:
function isServer() {
return ! (typeof window != 'undefined' && window.document);
}
import React from 'react';
const LED = React.createClass({
render: function() {
if(!isServer()) {
var LiveSchemaEditor = require('../../src/components/LiveSchemaEditor.js');
return <LiveSchemaEditor />;
}
return <div>I AM IN THE SERVER</div>;
}
});
export default LED;
Beni rahatsız eden webpack
paket LiveSchemaEditor.js
içeriğini içerdiğini ama yine de istemci üzerinde I AM IN THE SERVER
süre yazdırır . Bu mantıklı değil. eklentileri altında webpack config
Düğüm-işini kontrol etmek ister misiniz? 'function isNode() {return process && typeof process.env === 'object' && Object.keys (process.env).uzunluğu; } 'Tarayıcıda, '0' döndürüyor, ancak düğümde çalışıyor,> 0 olacak. Veya sadece şunlara bakın: https://nodejs.org/docs/latest/api/process.html#process .version – m59
@ m59, teşekkürler, ancak sunucu oluştururken de bu geri dönecektir. Sadece web paketi çalışıyorsa, doğru dönen bir şeye ihtiyacım var. Webpack çalışırken, özellikle process.env.NODE_ENV 'yi ayarlayabilirsem, bu hile yapardı. –
Webpack kullanmıyorum, bu yüzden bana atıfta bulunduğunuz durumun nasıl kurulacağını gösterebilir misiniz? Webpack aslında kodunuzu yürütüyor mu? – m59