[16971] | 1 | let mix = require('laravel-mix'); |
---|
| 2 | |
---|
| 3 | /* |
---|
| 4 | |-------------------------------------------------------------------------- |
---|
| 5 | | Mix Asset Management |
---|
| 6 | |-------------------------------------------------------------------------- |
---|
| 7 | | |
---|
| 8 | | Mix provides a clean, fluent API for defining some Webpack build steps |
---|
| 9 | | for your Laravel application. By default, we are compiling the Sass |
---|
| 10 | | file for your application, as well as bundling up your JS files. |
---|
| 11 | | |
---|
| 12 | */ |
---|
| 13 | mix.autoload({ |
---|
| 14 | jquery: ['$', 'window.jQuery', 'jQuery'], |
---|
| 15 | moment: 'moment' |
---|
| 16 | }); |
---|
| 17 | |
---|
| 18 | mix.setPublicPath('./static') |
---|
| 19 | .setResourceRoot('./') |
---|
| 20 | .js('assets/js/theme.js', './') |
---|
| 21 | .sass('assets/sass/theme.scss', './') |
---|
| 22 | .then(() => { |
---|
| 23 | const fs = require("fs"); |
---|
| 24 | const oldFontsPath = './static/fonts/vendor'; |
---|
| 25 | const newFontsPath = './static/fonts/_vendor'; |
---|
| 26 | const themeFile = './static/theme.css'; |
---|
| 27 | |
---|
| 28 | if (fs.existsSync(newFontsPath)) { |
---|
| 29 | fs.rmdirSync(newFontsPath, {recursive: true, force: true}); |
---|
| 30 | } |
---|
| 31 | |
---|
| 32 | fs.rename(oldFontsPath, newFontsPath, function (err) { |
---|
| 33 | if (err) { |
---|
| 34 | console.log(err) |
---|
| 35 | } |
---|
| 36 | }) |
---|
| 37 | |
---|
| 38 | fs.readFile(themeFile, 'utf8', function (err, data) { |
---|
| 39 | if (err) { |
---|
| 40 | return console.log(err); |
---|
| 41 | } |
---|
| 42 | let result = data.replace(/vendor/g, '_vendor'); |
---|
| 43 | |
---|
| 44 | fs.writeFile(themeFile, result, 'utf8', function (err) { |
---|
| 45 | if (err) { |
---|
| 46 | return console.log(err); |
---|
| 47 | } |
---|
| 48 | }); |
---|
| 49 | }); |
---|
| 50 | }); |
---|
| 51 | |
---|
| 52 | // Full API |
---|
| 53 | // mix.js(src, output); |
---|
| 54 | // mix.react(src, output); <-- Identical to mix.js(), but registers React Babel compilation. |
---|
| 55 | // mix.preact(src, output); <-- Identical to mix.js(), but registers Preact compilation. |
---|
| 56 | // mix.coffee(src, output); <-- Identical to mix.js(), but registers CoffeeScript compilation. |
---|
| 57 | // mix.ts(src, output); <-- TypeScript support. Requires tsconfig.json to exist in the same folder as webpack.mix.js |
---|
| 58 | // mix.extract(vendorLibs); |
---|
| 59 | // mix.sass(src, output); |
---|
| 60 | // mix.less(src, output); |
---|
| 61 | // mix.stylus(src, output); |
---|
| 62 | // mix.postCss(src, output, [require('postcss-some-plugin')()]); |
---|
| 63 | // mix.browserSync('my-site.test'); |
---|
| 64 | // mix.combine(files, destination); |
---|
| 65 | // mix.babel(files, destination); <-- Identical to mix.combine(), but also includes Babel compilation. |
---|
| 66 | // mix.copy(from, to); |
---|
| 67 | // mix.copyDirectory(fromDir, toDir); |
---|
| 68 | // mix.minify(file); |
---|
| 69 | // mix.sourceMaps(); // Enable sourcemaps |
---|
| 70 | // mix.version(); // Enable versioning. |
---|
| 71 | // mix.disableNotifications(); |
---|
| 72 | // mix.setPublicPath('path/to/public'); |
---|
| 73 | // mix.setResourceRoot('prefix/for/resource/locators'); |
---|
| 74 | // mix.autoload({}); <-- Will be passed to Webpack's ProvidePlugin. |
---|
| 75 | // mix.webpackConfig({}); <-- Override webpack.config.js, without editing the file directly. |
---|
| 76 | // mix.babelConfig({}); <-- Merge extra Babel configuration (plugins, etc.) with Mix's default. |
---|
| 77 | // mix.then(function () {}) <-- Will be triggered each time Webpack finishes building. |
---|
| 78 | // mix.override(function (webpackConfig) {}) <-- Will be triggered once the webpack config object has been fully generated by Mix. |
---|
| 79 | // mix.dump(); <-- Dump the generated webpack config object to the console. |
---|
| 80 | // mix.extend(name, handler) <-- Extend Mix's API with your own components. |
---|
| 81 | // mix.options({ |
---|
| 82 | // extractVueStyles: false, // Extract .vue component styling to file, rather than inline. |
---|
| 83 | // globalVueStyles: file, // Variables file to be imported in every component. |
---|
| 84 | // processCssUrls: true, // Process/optimize relative stylesheet url()'s. Set to false, if you don't want them touched. |
---|
| 85 | // purifyCss: false, // Remove unused CSS selectors. |
---|
| 86 | // terser: {}, // Terser-specific options. https://github.com/webpack-contrib/terser-webpack-plugin#options |
---|
| 87 | // postCss: [] // Post-CSS options: https://github.com/postcss/postcss/blob/master/docs/plugins.md |
---|
| 88 | // }); |
---|