forked from mshossain110/examinee
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.mix.js
48 lines (41 loc) · 1.61 KB
/
webpack.mix.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const mix = require('laravel-mix')
const path = require('path')
const webpack = require('webpack')
/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel applications. By default, we are compiling the CSS
| file for the application as well as bundling up all the JS files.
|
*/
function assetsPath (dir = '') {
return path.join(__dirname, './resources/assets/', dir)
}
function publicPath (dir = '') {
return path.join(__dirname, './public/', dir)
}
mix.webpackConfig({
resolve: {
extensions: ['.js', '.vue', '.json', '.scss'],
alias: {
vue$: 'vue/dist/vue.esm.js',
node_modules: './node_modules',
'@c': assetsPath('js/components'),
'@src': assetsPath('js')
}
}
})
mix.copyDirectory('node_modules/@fortawesome/fontawesome-free/webfonts', publicPath('fonts/fontawesome'))
mix.copy('node_modules/@fancyapps/fancybox/dist/jquery.fancybox.min.js', publicPath('js/lib/jquery.fancybox.min.js'))
mix.copy('node_modules/@fancyapps/fancybox/dist/jquery.fancybox.min.css', publicPath('css/lib/jquery.fancybox.min.css'))
mix.js(assetsPath('js/app.js'), publicPath('js'))
.vue()
.extract(['vue', 'vue-router', 'jquery', 'popper.js', 'bootstrap', 'axios', 'lodash', 'moment'])
mix.js(assetsPath('js/bootstrap.js'), publicPath('js'))
mix.sass(assetsPath('sass/app.scss'), publicPath('css'))
if (mix.inProduction()) {
mix.version()
}