React中的动态导入

时间:2017-08-17 16:28:53

标签: reactjs ecmascript-6

我试图通过process.env.NODE_ENV导入文件的动态,以导入样式表或生产或开发中的另一个样式表。我已经提出加载它的条件,但它在./src/index.js中给出了一个错误错误 语法错误:' import'和'出口'可能只出现在顶层(13:4)我想这不正确但是......我怎么能这样做?我使用create-react-app

import 'babel-polyfill';
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';

import App from './components/App';

import routes from './routes';
import configureStore from './store/configureStore';
import initialState from './reducers/initialState';

if (process.env.NODE_ENV === 'production') {
    import './styles/index.css';
}else {
    import './styles/index.scss';
}
const store = configureStore(initialState);

ReactDOM.render(
   <Provider store={store}>
       <App />
   </Provider>,
   document.getElementById('root') 
);

感谢!!!

1 个答案:

答案 0 :(得分:7)

正如Laoujin在评论中提到的那样,你会想要在这种情况下使用require

例如,以下是我根据NODE_ENV配置对Redux商店的访问权限的方法,可根据您的需要进行调整:

const INITIAL_STATE = {};

function getStore () {
    const configureStore = process.env.NODE_ENV === 'production'
        ? require('./configure-store.prod').default
        : require('./configure-store.dev').default;
    return configureStore(INITIAL_STATE);
}

export default getStore();