我疯狂地试图建立我的生产包,但如果bundle.js
设置为configuration->mode
,我们无法弄清楚为什么某些文件不会包含在最终production
中到index.js
。
具体来说,在我的主index.js
中包含redux商店,然后传递给主要组件。最终应用程序的结果是空值减少器。在开发模式中,一切正常。
那是我的import store from './app/combiner/';
let theme = createMuiTheme(customThemeSettings);
theme['custom'] = customStyle(theme);
theme['overrides'] = muiOverrides(theme);
init(store);
const initialState = store.getState();
console.log('__INITIAL__', initialState)
let previousAccessToken = initialState.securityProviderReducer.logged.accesstoken;
/*
* Subscribe store , Check value change accesstoken
*/
store.subscribe(() => {
const currentState = store.getState();
const currentAccessToken = currentState.securityProviderReducer.logged.accesstoken;
if (currentAccessToken !== previousAccessToken) {
previousAccessToken = currentAccessToken;
updateStore(store);
}
});
const renderApp = (Controller) => {
render(
<Provider store={store}>
<BrowserRouter>
<AppContainer>
<MuiThemeProvider theme={theme}>
<Controller/>
</MuiThemeProvider>
</AppContainer>
</BrowserRouter>
</Provider>,
document.getElementById('root')
)
}
renderApp(Controller);
if (module.hot) {
module.hot.accept('./app/components/applications/Controller', () => {
const newController = require('./app/components/applications/Controller').default;
renderApp(newController);
});
}
console.log(process.env)
if (process.env.NODE_ENV !== 'production') {
console.log('Looks like we are in DEVELOPENT mode!');
}else {
console.log('Looks like we are in PRODUCTION mode!');
}
(某些导入失踪在上面)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
&#13;
./app
&#13;
src(main folder)
下方的__INITIAL__ console.log
文件夹。正如我在这里的片段中所示,DateTime
结果为空对象。
我应该将文件移动到其他位置/文件夹还是设置其他配置参数或添加一些插件?
感谢您的回答。
---------问题已解决--------------
在我的情况下,我使用materil-ui-next with react和来自webpack的UglifyJsPlugin,由于某种原因没有包含./app(以及子文件夹)中包含的文件。所以缺少库(我的应用程序redux / store)。 然后我就这样编辑:
...... module.exports = merge(common,{ 模式:&#39;制作&#39;, devtool:&#39; source-map&#39;, 优化:{ 最小化器:[ 新的UglifyJsPlugin({ sourceMap:true, 包括:// app /, exclude:[// node_modules /], 平行:是的 }) ] },.....
除此之外,在JS中使用material-ui-next(https://material-ui.com/customization/css-in-js/#jssprovider)和CSS我必须添加react-jss(https://github.com/cssinjs/react-jss#multi-tree-setup)以避免在被覆盖的模块之间重复类。替换为JSS的前缀
最后,生产构建工作正常。