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