我试图在我的核心React组件中要求shelljs。
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'));
当我跑步时
webpack build
我没有错误,然后我运行我的服务器,我得到以下控制台错误。
我正在使用jekyll作为我的服务器端。目前正在从正常的jekyll实现过渡到React。 React很好实现,因为我在导入shelljs模块之前测试了Header组件
ReferenceError: process is not defined
我很想在javascript中使用模块,提前谢谢。
答案 0 :(得分:7)
我猜你不会真的意味着使用你的shell
常量,因为你没有在你的React组件中的任何地方引用它。 Shelljs
看起来像是专门用于命令行的工具。
至于你的错误:
process
是Node环境中的全局变量。由于React在浏览器中运行,并且您的组件将在浏览器中呈现,因此组件的上下文中将不存在process
。
尝试打开Chrome DevTools(或您使用的任何浏览器的开发者工具),然后输入process
。你会得到一个TypeError,因为它不存在。但是,存在的是全局window
变量。
现在,打开命令行并输入node
以打开Node.js REPL。
在这里输入process
,你会发现它是一个包含很多属性和值的对象。接下来,输入window
并按Enter键。此处不存在window
,因为它只存在于浏览器中。
(键入 Ctrl + C 两次以退出Node btw。:])