【发布时间】:2017-08-18 00:37:50
【问题描述】:
我正在尝试通过 process.env.NODE_ENV 导入文件的动态,以在生产或开发中导入样式表或另一个样式表。我已经设定了加载它的条件,但它给了我一个错误 Error in ./src/index.js 语法错误:'import' 和 'export' 可能只出现在顶层 (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')
);
谢谢!!!
【问题讨论】:
-
使用
require('./styles/index.scss')? :) 但也许这更多应该由您的构建/CI 而不是代码决定? -
另一种方法是
import './styles';然后将扩展处理从.css更改为.scss用于生产与开发,或者为其设置别名并根据环境更改别名。我个人尽量避免在应用程序代码中进行这样的分支,因为这表明这是构建逻辑的问题,而不是应用程序逻辑的问题。在同一个文件中使用require和import从长远来看是行不通的。
标签: reactjs ecmascript-6