You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.1 KiB
65 lines
2.1 KiB
const mix = require('laravel-mix'); |
|
require('dotenv').config(); |
|
|
|
/* |
|
|-------------------------------------------------------------------------- |
|
| Mix Asset Management |
|
|-------------------------------------------------------------------------- |
|
| |
|
| Mix provides a clean, fluent API for defining some Webpack build steps |
|
| for your Laravel application. By default, we are compiling the Sass |
|
| file for the application as well as bundling up all the JS files. |
|
| |
|
*/ |
|
const glob = require('glob') |
|
|
|
let theme = null; |
|
|
|
let distPath = mix.inProduction() ? 'resources/dist' : 'resources/pre-dist'; |
|
|
|
function mixAssetsDir(query, cb) { |
|
(glob.sync('resources/assets/' + query) || []).forEach(f => { |
|
f = f.replace(/[\\\/]+/g, '/'); |
|
cb(f, f.replace('resources/assets', distPath)); |
|
}); |
|
} |
|
|
|
function themeCss(path) { |
|
let sf = theme ? '-'+theme : ''; |
|
|
|
return `${distPath}/${path}${sf}.css` |
|
} |
|
|
|
function dcatPath(path) { |
|
return 'resources/assets/dcat/' + path; |
|
} |
|
|
|
function dcatDistPath(path) { |
|
return distPath + '/dcat/' + path; |
|
} |
|
|
|
|
|
/* |
|
|-------------------------------------------------------------------------- |
|
| Dcat Admin assets |
|
|-------------------------------------------------------------------------- |
|
*/ |
|
|
|
mix.copyDirectory('resources/assets/images', distPath + '/images'); |
|
mix.copyDirectory('resources/assets/fonts', distPath + '/fonts'); |
|
|
|
// AdminLTE3.0 |
|
mix.sass('resources/assets/adminlte/scss/AdminLTE.scss', themeCss('adminlte/adminlte')).sourceMaps(); |
|
mix.js('resources/assets/adminlte/js/AdminLTE.js', distPath + '/adminlte/adminlte.js').sourceMaps(); |
|
|
|
// 复制第三方插件文件夹 |
|
mix.copyDirectory(dcatPath('plugins'), dcatDistPath('plugins')); |
|
// 打包app.js |
|
mix.js(dcatPath('js/dcat-app.js'), dcatDistPath('js/dcat-app.js')).sourceMaps(); |
|
// 打包app.scss |
|
mix.sass(dcatPath('sass/dcat-app.scss'), themeCss('dcat/css/dcat-app')).sourceMaps(); |
|
mix.copy(dcatPath('sass/nunito.css'), `${distPath}/dcat/css/nunito.css`); |
|
|
|
// 打包所有 extra 里面的所有js和css |
|
mixAssetsDir('dcat/extra/*.js', (src, dest) => mix.js(src, dest)); |
|
mixAssetsDir('dcat/extra/*.scss', (src, dest) => mix.sass(src, dest.replace('scss', 'css')));
|
|
|