forked from dkjensen/wc-cart-pdf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.mix.js
109 lines (95 loc) · 2.89 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/**
* Laravel Mix configuration file.
*
* Laravel Mix is a layer built on top of Webpack that simplifies much of the
* complexity of building out a Webpack configuration file. Use this file
* to configure how your assets are handled in the build process.
*
* @link https://laravel.com/docs/5.8/mix
*/
// Import required packages.
const mix = require('laravel-mix');
const CopyWebpackPlugin = require('copy-webpack-plugin');
require('laravel-mix-polyfill');
require('laravel-mix-svg-sprite');
/*
* Disable all notifications.
*/
mix.disableNotifications();
/*
* -----------------------------------------------------------------------------
* Build Process
* -----------------------------------------------------------------------------
* The section below handles processing, compiling, transpiling, and combining
* all of the theme's assets into their final location. This is the meat of the
* build process.
* -----------------------------------------------------------------------------
*/
/*
* Sets the development path to assets. By default, this is the `/resources`
* folder in the theme.
*/
const devPath = 'resources';
const distPath = 'assets';
/*
* Sets the path to the generated assets. By default, this is the root folder in
* the theme. If doing something custom, make sure to change this everywhere.
*/
mix.setPublicPath('./');
/*
* Builds sources maps for assets.
*
* @link https://laravel.com/docs/5.6/mix#css-source-maps
*/
// mix.sourceMaps();
/*
* Versioning and cache busting. Append a unique hash for production assets. If
* you only want versioned assets in production, do a conditional check for
* `mix.inProduction()`.
*
* @link https://laravel.com/docs/5.6/mix#versioning-and-cache-busting
*/
mix.version();
/*
* Compile JavaScript.
*
* @link https://laravel.com/docs/5.6/mix#working-with-scripts
*/
mix
.js(`${devPath}/js/wc-cart-pdf.js`, `${distPath}/js`);
/*
* Add custom Webpack configuration.
*
* Laravel Mix doesn't currently minimize images while using its `.copy()`
* function, so we're using the `CopyWebpackPlugin` for processing and copying
* images into the distribution folder.
*
* @link https://laravel.com/docs/5.6/mix#custom-webpack-configuration
* @link https://webpack.js.org/configuration/
*/
mix.webpackConfig({
stats: 'minimal',
performance: {hints: false},
externals: {jquery: 'jQuery'}
});
if (process.env.sync) {
/*
* Monitor files for changes and inject your changes into the browser.
*
* @link https://laravel.com/docs/5.6/mix#browsersync-reloading
*/
mix.browserSync({
notify: false,
proxy: process.env.MIX_PROXY,
host: process.env.MIX_HOST,
open: 'external',
port: process.env.MIX_PORT,
https: {
'key': process.env.MIX_KEY,
'cert': process.env.MIX_CRT
},
files: [
`${devPath}/**/*`,
]
});
}