Size: a a a

Webpack — русскоговорящее сообщество

2020 January 10

А

Алексей in Webpack — русскоговорящее сообщество
module.exports = {
   // BASE config
   externals: {
       paths_src: PATH_SRC, // нужно для получения доступа к константе из других конфигов
       paths_build: PATH_BUILD,
       paths_assets: PATH_ASSETS,
       paths_dir: PAGES_DIR
   },
   entry: {
       // точки входа
       app: ["./src/index.js"]
   },
   output: {
       filename: js/[name].[chunkhash].js, // имя файла
       path: PATH_BUILD, // папка куда кладем
       publicPath: "/" // относительные ссылки для файлов
   },
   optimization: {
       runtimeChunk: true
   },
   module: {
       rules: [{
               test: /\.vue$/,
               loader: "vue-loader",
               options: {
                   loader: {
                       scss: "vue-style-loader!style-loader!css-loader!sass-loader"
                   }
               }
           },
           {
               test: /\.(png|jpe?g|gif|svg|webp|ico|woff|woff2|ttf|eot)$/,
               loader: "file-loader",
               options: {
                   name: "[path][name].[hash].[ext]"
               }
           },
           {
               test: /\.css$/,
               use: ['style-loader', 'css-loader']
           }
       ]
   },
   resolve: {
       // как ищет модули
       modules: ["node_modules"],
       // файлы подключаемые в приложение без указания расширения
       extensions: ["*", ".js", ".css", ".scss"],
       alias: {
           vue$: "vue/dist/vue.js"
       }
   },

   resolveLoader: {
       // как ищет модули для лоадеров
       modules: ["node_modules"],
       extensions: ["*", ".js", ".css", ".scss"]
   },

   plugins: [
       new VueLoaderPlugin(),
       new webpack.ProvidePlugin({
           $: "jquery",
           jQuery: "jquery"
       }),
       new CopyWebpackPlugin([
           // копируем файлы
           {
               from: ${PATH_ASSETS}/img,
               to: img
           },
           {
               from: ${PATH_ASSETS}/fonts,
               to: fonts
           },
           {
               from: ${PATH_SRC}/js/config.js,
               to: js
           },
           {
               from: ${PATH_SRC}/save,
               to: save
           },
           {
               from: ${PATH_SRC}/static,
               to: ``
           }
       ]),

       // Automatic creation any html pages (Don't forget to RERUN dev server)
       ...PAGES.map(
           page =>
           new HtmlWebpackPlugin({
               template: ${PAGES_DIR}/${page},
               filename: ./${page}
           })
       )
   ]
};
источник

А

Алексей in Webpack — русскоговорящее сообщество
и я вот думаю, это я тупой и в архитектуре лоханулся, или где-то что-то конфликтует
источник

ВВ

Владислав Ворон in Webpack — русскоговорящее сообщество
Есть подозрения на промисы. Возможно просто они отрабатывают позже.
источник

А

Алексей in Webpack — русскоговорящее сообщество
хм..
источник

А

Алексей in Webpack — русскоговорящее сообщество
не, походу с вот этими строками чет не так
       ...PAGES.map(
           page =>
           new HtmlWebpackPlugin({
               template: ${PAGES_DIR}/${page},
               filename: ./${page}
           })
       )
   ]
источник

ВВ

Владислав Ворон in Webpack — русскоговорящее сообщество
Алексей
не, походу с вот этими строками чет не так
       ...PAGES.map(
           page =>
           new HtmlWebpackPlugin({
               template: ${PAGES_DIR}/${page},
               filename: ./${page}
           })
       )
   ]
Как раз тут проблемы нет. Обычная практика для MPA, для каждого бандла свой плагин.
источник

А

Алексей in Webpack — русскоговорящее сообщество
Чертова тленнота, а есть адекватный способ отладки вебпака?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Алексей
Чертова тленнота, а есть адекватный способ отладки вебпака?
конешн
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
1.
   git clone https://github.com/webpack/webpack.git
  npm setup
  cd path/to/project
  npm ln webpack
2. ???
3. profit!
источник

А

Алексей in Webpack — русскоговорящее сообщество
огонь, спасибо
источник
2020 January 11

AB

Artyom Burkan in Webpack — русскоговорящее сообщество
Есть какие-нибудь ресуры, которые объясняют как делать простенькую сборку? Мне азы понятны, непонятно как оптимизовать сборку, перекладывать ассеты из одного места в другое и тп.

Например для лэндинга не надо сильных наворотов: SASS, HTML, JS — понятно как делать сборку для них. Как работать с Assets: шрифты, картинки и тп, непонятно. Особенно не ясно как переставлять в них пути до файлов после перекладывания из dev в  prod
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Artyom Burkan
Есть какие-нибудь ресуры, которые объясняют как делать простенькую сборку? Мне азы понятны, непонятно как оптимизовать сборку, перекладывать ассеты из одного места в другое и тп.

Например для лэндинга не надо сильных наворотов: SASS, HTML, JS — понятно как делать сборку для них. Как работать с Assets: шрифты, картинки и тп, непонятно. Особенно не ясно как переставлять в них пути до файлов после перекладывания из dev в  prod
Для лендинга возьмите https://parceljs.org/
источник

AB

Artyom Burkan in Webpack — русскоговорящее сообщество
Спасибо, но меня интересует Webpack. Собственно в это сообщество и написал по этой причине
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Artyom Burkan
Спасибо, но меня интересует Webpack. Собственно в это сообщество и написал по этой причине
Пути вебпак сам переставляет после сборки
источник

TG

Timofey Goncharov in Webpack — русскоговорящее сообщество
если поставить watch true, то по умолчанию webpack следит за точкой входа и всеми ее зависимостями, правильно?  а что нужно сделать что бы webpack следил еще за какими-то файлами? какой конфиг, файл, какое API мне нужно юзать что бы это сделать?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Timofey Goncharov
если поставить watch true, то по умолчанию webpack следит за точкой входа и всеми ее зависимостями, правильно?  а что нужно сделать что бы webpack следил еще за какими-то файлами? какой конфиг, файл, какое API мне нужно юзать что бы это сделать?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
(3 строчка в гугле ; )
источник

TG

Timofey Goncharov in Webpack — русскоговорящее сообщество
не, меня интересует не готовое решение, а тоерия и понимание внутренного алгоритма
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Timofey Goncharov
не, меня интересует не готовое решение, а тоерия и понимание внутренного алгоритма
октрываешь сырцы это плагина и смотришь!
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
и теория и практика
источник