2017-01-22 13 views
1

핵심 React 구성 요소에 shelljs가 필요합니다. 내가ReferenceError : ReactJS에서 Shelljs를 요구할 때 프로세스가 정의되지 않았습니다.

webpack build 

을 실행하면

import React, { Component } from 'react'; 
import {render} from 'react-dom'; 
import Header from './components/Header'; 

const shell = require('shelljs'); 

class App extends Component { 
    render() { 
     console.log("First component mounting"); 
     console.log("First component mounting"); 
     return (
      <Header /> 
     ) 
    } 
} 

render(<App />, document.getElementById('root')); 

내가 오류를 얻을, 나는 내 서버를 실행하고 나는 다음과 같은 콘솔 오류가 발생합니다.

내 서버쪽에 jekyll을 사용하고 있습니다. 현재 일반적인 지킬 구현에서 React에만 적용됩니다. 내가 사전에

ReferenceError: process is not defined 

내가 자바 스크립트 모듈을 사용하여 새로운 해요 shelljs 모듈을, 감사를 가져 오기 전에 헤더 구성 요소를 테스트 원인 잘 구현되어 반응한다.

+0

이 코드를 추가 할 수 있습니다/당신이 너무 서버를 실행하시기 바랍니다 사용하는 명령? – thesublimeobject

+0

업데이트 된 설명 – Goamaral

+0

예, 볼 수있는 모든 것은 괜찮아 보이지만 지킬에 익숙하지 않아서 도움이되지 않을 수 있습니다. 죄송합니다. – thesublimeobject

답변

2

실제로는은 귀하의 shell 상수를 귀하의 React 구성 요소 내 어디에서나 참조하지 않았으므로 상수로 사용하는 것을 의미합니다. Shelljs은 명령 줄 전용 도구 인 것처럼 보입니다. 당신의 오류에 대해서는

:

process는 노드 환경에서 전역 변수입니다. React가 브라우저에서 실행되고 구성 요소가 브라우저에서 렌더링되기 때문에 process은 구성 요소의 컨텍스트에 존재하지 않습니다.

Chrome DevTools (또는 사용하는 브라우저에 상관없이 개발자 도구)를 열고 process을 입력 해보세요. 존재하지 않기 때문에 TypeError가 발생합니다. 그러나 존재하는 것은 세계 window 변수입니다.

이제 명령 줄을 열고 node을 입력하여 Node.js REPL을 엽니 다. 여기에 process 유형이 있으며 속성과 값이 많은 객체임을 알 수 있습니다. 그런 다음 window을 입력하고 Enter 키를 누릅니다. window은 브라우저에만 있기 때문에 여기에 존재하지 않습니다.

(2 회 유형 Ctrl 키 + C은 BTW 노드를 종료합니다 :.])

+0

지킬이하는 일을 시뮬레이션하려고합니다. 내 게시물이있는 폴더가 있고 비어 있는지 확인하고 싶지 않은 경우 모든 파일을 문자열로 가져 와서 내 물건을 빌드하고 싶습니다. – Goamaral

+0

방금 ​​말씀하신 내용을 보았습니다. 설명 해줘서 고마워. 내가 어떻게 그것을 얻을 수있는 아이디어를 Btw? – Goamaral

+0

jekyll 정적 파일로 원하는 것을 할 수 있습니다. (https://jekyllrb.com/docs/static-files/) 파일 수를 세는 루비 스크립트를 통합하려고합니다. – Goamaral