Режим производства Webpack 4.0 без файлов
Я немного схожу с ума, пытаясь собрать свой производственный комплект, но не могу понять, почему некоторые файлы не включены в финал bundle.js
если configuration->mode
установлен в production
,
Конкретно в моем основном index.js
Резервное хранилище включается и затем передается в основной компонент. Результатом в конечном приложении является пустое значение редуктора. В режиме разработки все работает правильно.
Это мое index.js
(часть импорта отсутствует сверху)
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>
./app
папка чуть ниже src(main folder)
, Как я сказал и показал здесь, __INITIAL__ console.log
результат как пустой объект.
Должен ли я переместить файлы в другое место / папку или установить другие параметры конфигурации или добавить несколько плагинов?
Спасибо за любой ответ.
--------- ЗАДАЧА РЕШЕНА --------------
В моём случае я использовал materil-ui-next с веб-пакетом реакции и UglifyJsPlugin, по некоторым причинам не включал файлы, содержащиеся в./app (и в подпапках тоже). Так что не хватало библиотек (мое приложение redux / store). Тогда я просто редактирую так:
...... module.exports = merge (common, {mode: 'production', devtool: 'source-map', оптимизация: { minimizer: [ new UglifyJsPlugin({ sourceMap: true, include: //app/, exclude: [//node_modules/], parallel: true }) ] }, .....
В дополнение к этому, используя material-ui-next ( https://material-ui.com/customization/css-in-js/) и CSS в JS, мне пришлось добавить response-jss ( https://github.com/cssinjs/react-jss), чтобы избежать дублирования классов между модулями, которые были перезаписаны и заменены префиксом JSS
Наконец производственная сборка работает правильно.