Режим производства 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

Наконец производственная сборка работает правильно.

0 ответов

Другие вопросы по тегам