// 1. 首先放所有 import 语句
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import process from 'process/browser';  // 新增
import { Buffer } from 'buffer';        // 新增

// 2. 然后放 polyfill 代码
if (typeof window.process === 'undefined') {
  window.process = process;
}
if (typeof window.Buffer === 'undefined') {
  window.Buffer = Buffer;
}

// 3. 最后放应用逻辑
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

reportWebVitals();