1

Так что у меня следующая конфигурация WebPack:Webpack-DEV-сервер не создает файлы на изменения

import path from 'path'; 

module.exports = { 
    entry: { 
    index: './dev/index.js' 
    }, 
    output: { 
     path: path.join(__dirname, 'dist'), 
     publicPath: './dist/', 
     filename: 'bundle.js', 
     chunkFilename: '[id].bundle.js' 
    }, 
    module:{ 
     loader:{ 
      test: /\.js$/, 
      exclude:path.resolve(__dirname, "node_modules"), 
      loader: 'js' 
     } 
    } 

}; 

Проблема заключается в том, что, когда я webpack --watch файл не строить в папке /dist/ при каждом изменении. Но когда я запускаю webpack-dev-server, файлы даже не строятся. Почему это?

Пожалуйста, помогите.

+0

Но изменения _are_ отражены в вашем браузере? – robertklep

ответ

3

Причина вы не видите файлы, испускаемых в папку Dist, потому что WebPack-DEV-сервер использует в памяти файловой системы

Это позволяет очень быстро инкрементных сборки, когда изменения кода. Это было преднамеренное проектирование с нашей стороны. Вы можете просмотреть полученный код в своем браузере и никогда не должны ссылаться на эти файлы.

Это не рекомендуется для создания производительности, но вы можете посмотреть в плагинах, например write-file-webpack-plugin, если вам нужна эта функция.

0

«webpack» записывает ваш пакет на диск, тогда как «webpack-dev-server» загружает пакет в память. Поэтому при запуске последней команды вы не увидите, что в вашей файловой системе появится новый файл «bundle.js», хотя вы должны увидеть вывод на консоль, сообщающий об объединении и запуске dev-сервера).

Ключ конфигурации output.publicPath определяет местоположение пакета в памяти на сервере-хозяине. Поэтому, если вы установите publicPath на «dist», то index.html, обслуживаемый сервером webpack dev, понадобится тег скрипта, чтобы ссылаться на пакет.