Reactjs React中的动态导入
我试图通过process.env.NODE_env导入文件的动态,以导入样式表或生产或开发中的另一个样式表。我已经设置了加载它的条件,但它在./src/index.js中给了我一个错误 语法错误:“导入”和“导出”可能只出现在顶层(13:4),我想这是不正确的,但。。。我怎么做?我使用CreateReact应用程序Reactjs React中的动态导入,reactjs,ecmascript-6,Reactjs,Ecmascript 6,我试图通过process.env.NODE_env导入文件的动态,以导入样式表或生产或开发中的另一个样式表。我已经设置了加载它的条件,但它在./src/index.js中给了我一个错误 语法错误:“导入”和“导出”可能只出现在顶层(13:4),我想这是不正确的,但。。。我怎么做?我使用CreateReact应用程序 import 'babel-polyfill'; import React from 'react'; import ReactDOM from 'react-dom'; impor
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')
);
导入“babel polyfill”;
从“React”导入React;
从“react dom”导入react dom;
从'react redux'导入{Provider};
从“./components/App”导入应用程序;
从“./routes”导入路由;
从“/store/configureStore”导入configureStore;
从“./reducers/initialState”导入初始状态;
if(process.env.NODE_env===‘生产’){
导入“./styles/index.css”;
}否则{
导入“/styles/index.scss”;
}
常量存储=配置存储(初始状态);
ReactDOM.render(
,
document.getElementById('root'))
);
谢谢 正如Laoujin在评论中提到的,在这个场景中,您需要使用
require
例如,以下是我如何基于节点_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();
使用
require('./styles/index.scss')
?:)但也许这更应该由您的构建/CI而不是代码来决定?另一种方法是import./styles'
然后将扩展处理从.css
更改为.scss
,用于生产vs开发,或者使用别名并根据环境更改别名。我个人尽量避免在应用程序代码中出现这样的分支,因为这表明这是构建逻辑的问题,而不是应用程序逻辑的问题。在同一个文件中使用require
和import
从长远来看是行不通的。只需保存我完整的一天!非常感谢你!使用create react app
您可以通过import FakeData_moviescoming soon from'../data/coming soon.json'导入一个文件代码>,您将永远无法分离生产/==生产和(因为你!;-)FakeData:process.env.NODE_env!='生产'?require('../data/coming soon.json'):''
允许我仅在开发时导入大数据文件。德克萨斯州!德克萨斯州!德克萨斯州!德克萨斯州!只需将我的内置应用程序从750k减少到131k!!