added ssr?????
This commit is contained in:
208
webpack.ssr.config.js
Normal file
208
webpack.ssr.config.js
Normal file
@@ -0,0 +1,208 @@
|
||||
const { join } = require('path')
|
||||
const Encore = require('@symfony/webpack-encore')
|
||||
const Components = require('unplugin-vue-components/webpack')
|
||||
const { NaiveUiResolver } = require('unplugin-vue-components/resolvers')
|
||||
const nodeExternals = require('webpack-node-externals')
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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('./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.js')
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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/views'),
|
||||
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(() => {})
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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,
|
||||
}).enableTypeScriptLoader(config => {
|
||||
config.configFile = 'tsconfig.vue.json'
|
||||
}).addAliases({
|
||||
'@': join(__dirname, 'resources/js')
|
||||
}).configureDefinePlugin(options => {
|
||||
options['__VUE_OPTIONS_API__'] = true
|
||||
options['__VUE_PROD_DEVTOOLS__'] = false
|
||||
}).addPlugin( Components({
|
||||
resolvers: [NaiveUiResolver()]
|
||||
}))
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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.externals = [
|
||||
nodeExternals({
|
||||
allowlist: ['@inertiajs/core', '@inertiajs/vue3'],
|
||||
}),
|
||||
]
|
||||
config.externalsPresets = { node: true }
|
||||
config.output = {
|
||||
libraryTarget: 'commonjs2',
|
||||
filename: 'ssr.js',
|
||||
path: join(__dirname, './inertia/ssr'),
|
||||
}
|
||||
config.experiments = { outputModule: true }
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Export config
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Export config for webpack to do its job
|
||||
|
|
||||
*/
|
||||
|
||||
module.exports = config
|
||||
Reference in New Issue
Block a user