Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { join } = require('path')
- const Encore = require('@symfony/webpack-encore')
- /*
- |--------------------------------------------------------------------------
- | Encore runtime environment
- |--------------------------------------------------------------------------
- */
- if (!Encore.isRuntimeEnvironmentConfigured()) {
- Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev')
- }
- /*
- |--------------------------------------------------------------------------
- | Output path
- |--------------------------------------------------------------------------
- |
- | The output path for writing the compiled files. It should always
- | be inside the public directory, so that AdonisJS can serve it.
- |
- */
- Encore.setOutputPath('./build/inertia/ssr')
- /*
- |--------------------------------------------------------------------------
- | Public URI
- |--------------------------------------------------------------------------
- |
- | The public URI to access the static files. It should always be
- | relative from the "public" directory.
- |
- */
- Encore.setPublicPath('/ssr')
- /*
- |--------------------------------------------------------------------------
- | Entrypoints
- |--------------------------------------------------------------------------
- |
- | Entrypoints are script files that boots your frontend application. Ideally
- | a single entrypoint is used by majority of applications. However, feel
- | free to add more (if required).
- |
- | Also, make sure to read the docs on "Assets bundler" to learn more about
- | entrypoints.
- |
- */
- Encore.addEntry('ssr', './resources/js/ssr.tsx')
- /*
- |--------------------------------------------------------------------------
- | Isolated entrypoints
- |--------------------------------------------------------------------------
- |
- | Treat each entry point and its dependencies as its own isolated module.
- |
- */
- Encore.disableSingleRuntimeChunk()
- /*
- |--------------------------------------------------------------------------
- | Cleanup output folder
- |--------------------------------------------------------------------------
- |
- | It is always nice to cleanup the build output before creating a build. It
- | will ensure that all unused files from the previous build are removed.
- |
- */
- Encore.cleanupOutputBeforeBuild()
- /*
- |--------------------------------------------------------------------------
- | Assets versioning
- |--------------------------------------------------------------------------
- |
- | Enable assets versioning to leverage lifetime browser and CDN cache
- |
- */
- Encore.enableVersioning(Encore.isProduction())
- /*
- |--------------------------------------------------------------------------
- | Configure dev server
- |--------------------------------------------------------------------------
- |
- | Here we configure the dev server to enable live reloading for edge templates.
- | Remember edge templates are not processed by Webpack and hence we need
- | to watch them explicitly and livereload the browser.
- |
- */
- Encore.configureDevServerOptions((options) => {
- /**
- * Normalize "options.static" property to an array
- */
- if (!options.static) {
- options.static = []
- } else if (!Array.isArray(options.static)) {
- options.static = [options.static]
- }
- /**
- * Enable live reload and add views directory
- */
- options.liveReload = true
- options.static.push({
- directory: join(__dirname, './resources/js/pages'),
- watch: true,
- })
- })
- /*
- |--------------------------------------------------------------------------
- | CSS precompilers support
- |--------------------------------------------------------------------------
- |
- | Uncomment one of the following lines of code to enable support for your
- | favorite CSS precompiler
- |
- */
- // Encore.enableSassLoader()
- // Encore.enableLessLoader()
- // Encore.enableStylusLoader()
- /*
- |--------------------------------------------------------------------------
- | CSS loaders
- |--------------------------------------------------------------------------
- |
- | Uncomment one of the following line of code to enable support for
- | PostCSS or CSS.
- |
- */
- Encore.enablePostCssLoader()
- //Encore.configureCssLoader(() => {})
- Encore.enableTypeScriptLoader()
- Encore.enableReactPreset()
- /*
- |--------------------------------------------------------------------------
- | Enable Vue loader
- |--------------------------------------------------------------------------
- |
- | Uncomment the following lines of code to enable support for vue. Also make
- | sure to install the required dependencies.
- |
- */
- // Encore.enableVueLoader(() => {}, {
- // version: 3,
- // runtimeCompilerBuild: false,
- // useJsx: false,
- // })
- /*
- |--------------------------------------------------------------------------
- | Configure logging
- |--------------------------------------------------------------------------
- |
- | To keep the terminal clean from unnecessary info statements , we only
- | log warnings and errors. If you want all the logs, you can change
- | the level to "info".
- |
- */
- const config = Encore.getWebpackConfig()
- config.infrastructureLogging = {
- level: 'warn',
- }
- config.stats = 'errors-warnings'
- /*
- |--------------------------------------------------------------------------
- | SSR Config
- |--------------------------------------------------------------------------
- |
- */
- config.externals = [require('webpack-node-externals')()]
- config.externalsPresets = { node: true }
- config.output = {
- libraryTarget: 'commonjs2',
- filename: 'ssr.js',
- path: join(__dirname, './build/inertia/ssr'),
- }
- config.experiments = { outputModule: true }
- /*
- |--------------------------------------------------------------------------
- | Export config
- |--------------------------------------------------------------------------
- |
- | Export config for webpack to do its job
- |
- */
- module.exports = config
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement