const mix = require('laravel-mix'); require('laravel-mix-tailwind'); const buildTarget = process.env.CAIWU_BUILD_TARGET || 'all'; const buildJavaScript = buildTarget === 'all' || buildTarget === 'js'; const buildCss = buildTarget === 'all' || buildTarget === 'css'; const terserWorkers = Math.max(1, Number.parseInt(process.env.CAIWU_TERSER_WORKERS || '2', 10)); /* |-------------------------------------------------------------------------- | 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. | */ //mix.js('resources/assets/js/views/**/*.js', 'public/js') mix .setPublicPath('public/') .webpackConfig({ output: { publicPath: 'public/js/', filename: '[name].js', chunkFilename: '[name].js', }, stats: { children: true }, }) .options({ runtimeChunkPath: 'js', terser: { extractComments: false, parallel: terserWorkers, } }); if (buildJavaScript) { mix // Auth .js('resources/assets/js/views/auth/common.js', 'public/js/auth/common.min.js') .js('resources/assets/js/views/auth/users.js', 'public/js/auth/users.min.js') // Banking .js('resources/assets/js/views/banking/accounts.js', 'public/js/banking/accounts.min.js') .js('resources/assets/js/views/banking/transactions.js', 'public/js/banking/transactions.min.js') .js('resources/assets/js/views/banking/transfers.js', 'public/js/banking/transfers.min.js') .js('resources/assets/js/views/banking/reconciliations.js', 'public/js/banking/reconciliations.min.js') // Common .js('resources/assets/js/views/common/contacts.js', 'public/js/common/contacts.min.js') .js('resources/assets/js/views/common/companies.js', 'public/js/common/companies.min.js') .js('resources/assets/js/views/common/dashboards.js', 'public/js/common/dashboards.min.js') .js('resources/assets/js/views/common/documents.js', 'public/js/common/documents.min.js') .js('resources/assets/js/views/common/imports.js', 'public/js/common/imports.min.js') .js('resources/assets/js/views/common/items.js', 'public/js/common/items.min.js') .js('resources/assets/js/views/common/reports.js', 'public/js/common/reports.min.js') // Install .js('resources/assets/js/install.js', 'public/js/install.min.js') .js('resources/assets/js/views/install/update.js', 'public/js/install/update.min.js') // Wizard .js('resources/assets/js/wizard.js', 'public/js/wizard/wizard.min.js') // Modules .js('resources/assets/js/views/modules/apps.js', 'public/js/modules/apps.min.js') // Business workspace(店铺管理 › 各子功能) .js('resources/assets/js/views/business/pages.js', 'public/js/business/pages.min.js') .js('resources/assets/js/views/business/marketing-account-bills.js', 'public/js/business/marketing-account-bills.min.js') // Ecommerce Finance .js('resources/assets/js/views/ecommerce-finance/goods-reconciliations.js', 'public/js/ecommerce-finance/goods-reconciliations.min.js') .js('resources/assets/js/views/ecommerce-finance/return-reconciliations.js', 'public/js/ecommerce-finance/return-reconciliations.min.js') .js('resources/assets/js/views/ecommerce-finance/invoice-deductions.js', 'public/js/ecommerce-finance/invoice-deductions.min.js') .js('resources/assets/js/views/ecommerce-finance/compensation-details.js', 'public/js/ecommerce-finance/compensation-details.min.js') .js('resources/assets/js/views/ecommerce-finance/advance-details.js', 'public/js/ecommerce-finance/advance-details.min.js') .js('resources/assets/js/views/ecommerce-finance/sample-deductions.js', 'public/js/ecommerce-finance/sample-deductions.min.js') .js('resources/assets/js/views/ecommerce-finance/delivery-unpriced.js', 'public/js/ecommerce-finance/delivery-unpriced.min.js') .js('resources/assets/js/views/ecommerce-finance/return-unpriced.js', 'public/js/ecommerce-finance/return-unpriced.min.js') .js('resources/assets/js/views/ecommerce-finance/other-adjustments.js', 'public/js/ecommerce-finance/other-adjustments.min.js') .js('resources/assets/js/views/ecommerce-finance/dropshipping-express.js', 'public/js/ecommerce-finance/dropshipping-express.min.js') // Portal .js('resources/assets/js/views/portal/apps.js', 'public/js/portal/apps.min.js') // Settings .js('resources/assets/js/views/settings/categories.js', 'public/js/settings/categories.min.js') .js('resources/assets/js/views/settings/currencies.js', 'public/js/settings/currencies.min.js') .js('resources/assets/js/views/settings/settings.js', 'public/js/settings/settings.min.js') .js('resources/assets/js/views/settings/taxes.js', 'public/js/settings/taxes.min.js') .vue() .extract('public/js/vendor.js'); } if (buildCss) { mix.postCss('resources/assets/sass/app.css', 'public/css', [ require('tailwindcss') ]) .tailwind('./tailwind.config.js'); } if (mix.inProduction()) { mix.version(); }