Webpack запускает подключаемые скрипты на часах - PullRequest
0 голосов
/ 21 января 2019

У меня настроен веб-пакет с подключаемым модулем для обработки файлов приложения и css.

webpack.config.js

const path = require('path');
const glob = require('glob');
const uglify = require("uglify-js");
const cleanCSS = require("clean-css");
const merge = require('webpack-merge-and-include-globally');

const mode = 'dev';
const ext = mode === 'prod' ? '.min' : ''; 

module.exports = (event, arg) => {  

  let config = {

  mode: mode === 'dev' ? 'development' : 'prod' ? 'production' : '',
  entry: {
    bundle : [ "./build/index.js" ] 
  }, 
  output: {
    path: __dirname + '/public',
    filename: "js/[name].js"
  },
  plugins: [
    new merge({
        files: {
          // concatenate angular app
          './app/app.js' : [ 
            './build/app/js/app.js',
            './build/app/js/controllers/*',
            './build/app/js/directives/*', 
            './build/app/js/services/*', 
          ],
          // compile scripts & css 
          './js/scripts.js' : [ './build/js/scripts.js' ],
          './css/style.css' : [ './build/css/*' ]
        },
        transform: { // minify in prod mode
        './app/app.js' : code => mode === 'prod' ? uglify.minify(code).code : code,
        './js/scripts.js' : code => mode === 'prod' ? uglify.minify(code).code : code,
        './css/style.css' : code => mode === 'prod' ? new cleanCSS({}).minify(code).styles : code
      }
  })
]
}
return config; 
}

Когда я запускаю npm run build скрипт работает, как и ожидалось, при построении bundle.js с моими зависимостями, app.js с моим приложением и style.css с моим css.

Однако, когда я запускаю npm run watch, webpack только наблюдает за входомфайлы для bundle.js - index.js.

Можно ли указать, что webpack также просматривает входные файлы для плагинов?Или я могу указать, что скрипт сборки запускается при изменении некоторых произвольных файлов?

1 Ответ

0 голосов
/ 21 января 2019

Мне удалось найти решение, используя webpack-watch-files плагин

const WatchExternalFilesPlugin = require('webpack-watch-files-plugin').default;

  new WatchExternalFilesPlugin({
    files: [
      './build/app/js/**/*.js',
      './build/js/*.js',
      './build/css/*.css',
      // '!./src/*.test.js'
    ]
  })

** Примечание: .default inТребуемое утверждение необходимо с Webpack 4

...