Laravel mix webpack encore vue.config.js vue-cli


// vue.config.js
module.exports = {
  devServer: {
    // proxy: 'http://localhost:9000/',
    disableHostCheck: true,
    https: true,
  }
}


  devServer: {
    port: 3000,
    compress: true,
    allowedHosts: 'domain.com',
    webSocketServer: false,

 

const mix = require('laravel-mix');

mix.js('resources/SPA/main.js', 'public/build/main.js');
mix.options({
  extractVueStyles: 'public/build/main.css',
});
mix.disableNotifications();
mix.version();

 

var Encore = require('@symfony/webpack-encore');

Encore.setOutputPath('./public/build/');
Encore.setPublicPath('/build/');
Encore.cleanupOutputBeforeBuild();
Encore.addEntry('main', './resources/SPA_1/main.js');
Encore.addEntry('admin', './resources/SPA_2/main.js');
Encore.addEntry('vendor', './resources/vendor.js');
Encore.enableVueLoader(); // однофайловые компоненты
Encore.addStyleEntry('global', './resources/sass/app.scss');
Encore.enableSassLoader();
Encore.configureFilenames({/* js: '[name].[hash:8].js',*/});
Encore.enableVersioning(); // enableVersioning
Encore.configureManifestPlugin((options) => {
  options.fileName = '../mix-manifest.json';
  options.basePath = '/' + options.basePath;
});
Encore.enableSourceMaps(!Encore.isProduction());// enableSourceMaps

var config = Encore.getWebpackConfig();
// aliases
config.resolve.alias['~'] = require('path').resolve(__dirname, 'resources/SPA_1');
config.resolve.alias['@'] = require('path').resolve(__dirname, 'resources/SPA_2');
// dynamic import fix
config.plugins = config.plugins.filter(plugin => {
  return !(plugin instanceof require('webpack-chunk-hash'));
});

module.exports = config; // export the final configuration