-
laravel-mix
Discontinued The power of webpack, distilled for the rest of us. [Moved to: https://github.com/laravel-mix/laravel-mix] (by JeffreyWay)
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
const path = require('path') const fs = require('fs-extra') const mix = require('laravel-mix') require('laravel-mix-versionhash') const tailwindcss = require('tailwindcss') // const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer') mix .js('resources/js/app.js', 'public/dist/js').vue() .sass('resources/sass/app.scss', 'public/dist/css') .options({ processCssUrls: false, postCss: [tailwindcss('./tailwind.config.js')] }) .disableNotifications() if (mix.inProduction()) { mix // .extract() // Disabled until resolved: https://github.com/JeffreyWay/laravel-mix/issues/1889 // .version() // Use `laravel-mix-versionhash` for the generating correct Laravel Mix manifest file. .versionHash() } else { mix.sourceMaps() } mix.webpackConfig({ plugins: [ // new BundleAnalyzerPlugin() ], resolve: { extensions: ['.js', '.json', '.vue'], alias: { '~': path.join(__dirname, './resources/js') } }, output: { chunkFilename: 'dist/js/[chunkhash].js', path: path.resolve(__dirname, mix.inProduction() ? './public/build' : './public') } }) mix.then(() => { if (mix.inProduction()) { process.nextTick(() => publishAseets()) } }) function publishAseets () { const publicDir = path.resolve(__dirname, './public') fs.removeSync(path.join(publicDir, 'dist')) fs.copySync(path.join(publicDir, 'build', 'dist'), path.join(publicDir, 'dist')) fs.removeSync(path.join(publicDir, 'build')) }