0

I want to combine all my scripts into one minified javascript file, but I'm having trouble combining them.

mix.browserify([
  // ViewModels
  'viewmodels.js'
], 'resources/assets/compiled/js/viewmodels.js')

mix.coffee([
  // WebSocket Client
  'client.coffee'
], 'resources/assets/compiled/js/').scripts([
  // Vendor
  'vendor/jquery.js',
  'vendor/bootstrap.js',
  'vendor/vue.js',
  'vendor/sisyphus.js',
  'vendor/leaflet.js',
  'vendor/moment.min.js'
], 'resources/assets/compiled/js/vendor.js').scripts([
  // Site & Helpers
  'libs/laravel.js',
  'libs/helpers.js'
], 'resources/assets/compiled/js/site.js').scripts([
  // Combine Scripts
  'resources/assets/compiled/js/vendor.js',
  'resources/assets/compiled/js/client.js',
  'resources/assets/compiled/js/site.js',
  'resources/assets/compiled/js/viewmodels.js'
], 'public/js/all.js', './')

The files are created in resources/assets/compiled/js, so I've got:

  • client.js
  • site.js
  • vendor.js
  • viewmodels.js

The last task that's run is the scripts task combining the four files. The elixir log states (I simplified the ouput):

  • Browserify (ViewModels)
  • CoffeeScript Compiled
  • Merging Vendor
  • Merging Site & Helpers
  • Merging Combine Scripts

... and these are the error messages I get:

File not found: ./resources/assets/compiled/js/vendor.js
File not found: ./resources/assets/compiled/js/site.js

I did the exact same thing with sass and styles and it worked perfectly.

mix.sass([
  // Vendor
  'resources/assets/sass/fontawesome/font-awesome.scss',
  // Site
  'resources/assets/sass/site/site.scss'
], 'resources/assets/compiled/css/').styles([
  // Vendor
  'resources/assets/css/bootstrap.min.css',
  'resources/assets/css/hover-min.css',
  'resources/assets/css/leaflet.css',
  'resources/assets/compiled/css/font-awesome.css',
  // Site
  'resources/assets/compiled/css/site.css'
], 'public/css/all.css', './').version(
  'public/css/all.css'
)
Paweł Obrok
  • 22,568
  • 8
  • 74
  • 70
Johannes
  • 1,249
  • 3
  • 17
  • 33

1 Answers1

0

Why don't you merging the scripts all at once instead of doing it 3 times ?

Try like this

mix.coffee([
  // WebSocket Client
  'client.coffee'
], 'resources/assets/compiled/js/')
  .scripts([
    // Vendor
    'resources/assets/js/vendor/jquery.js',
    'resources/assets/js/vendor/bootstrap.js',
    'resources/assets/js/vendor/vue.js',
    'resources/assets/js/vendor/sisyphus.js',
    'resources/assets/js/vendor/leaflet.js',
    'resources/assets/js/vendor/moment.min.js',
    // Site & Helpers
    'resources/assets/js/libs/laravel.js',
    'resources/assets/js/libs/helpers.js',
    'resources/assets/compiled/js/client.js',
    'resources/assets/compiled/js/viewmodels.js'
  ], 'public/js/all.js', './');
Li Jia Li
  • 1
  • 1