forked from geolba/tethys.backend
- update to AdonisJS 6
This commit is contained in:
parent
f828ca4491
commit
cb51a4136f
167 changed files with 21485 additions and 21212 deletions
267
webpack.config_a.cjs
Normal file
267
webpack.config_a.cjs
Normal file
|
@ -0,0 +1,267 @@
|
|||
const { join } = require("path");
|
||||
const Encore = require("@symfony/webpack-encore");
|
||||
const { VueLoaderPlugin } = require('vue-loader');
|
||||
const dotenv = require('dotenv-webpack');
|
||||
|
||||
// Load the environment variables from the.env file
|
||||
Encore.addPlugin(
|
||||
new dotenv({
|
||||
path: ".env",
|
||||
defaults: ".env",
|
||||
systemvars: true,
|
||||
allowEmptyValues: true,
|
||||
})
|
||||
)
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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("./public/assets");
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Public URI
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The public URI to access the static files. It should always be
|
||||
| relative from the "public" directory.
|
||||
|
|
||||
*/
|
||||
Encore.setPublicPath("/assets");
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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("app", "./resources/js/app.js");
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Copy assets
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Since the edge templates are not part of the Webpack compile lifecycle, any
|
||||
| images referenced by it will not be processed by Webpack automatically. Hence
|
||||
| we must copy them manually.
|
||||
|
|
||||
*/
|
||||
// Encore.copyFiles({
|
||||
// from: './resources/images',
|
||||
// to: 'images/[path][name].[hash:8].[ext]',
|
||||
// })
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Split shared code
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Instead of bundling duplicate code in all the bundles, generate a separate
|
||||
| bundle for the shared code.
|
||||
|
|
||||
| https://symfony.com/doc/current/frontend/encore/split-chunks.html
|
||||
| https://webpack.js.org/plugins/split-chunks-plugin/
|
||||
|
|
||||
*/
|
||||
// Encore.splitEntryChunks()
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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();
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Source maps
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Enable source maps in production
|
||||
|
|
||||
*/
|
||||
Encore.enableSourceMaps(!Encore.isProduction());
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| 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
|
||||
// });
|
||||
|
||||
Encore.addLoader({
|
||||
test: /\.vue$/,
|
||||
loader: 'vue-loader',
|
||||
options: {
|
||||
// loaders: {
|
||||
// ts: 'ts-loader',
|
||||
// },
|
||||
cacheDirectory: 'C:\\Users\\kaiarn\\Documents\\Software\\tethys.viewer\\node_modules\\.cache\\vue-loader',
|
||||
cacheIdentifier: 'f930df3e',
|
||||
babelParserPlugins: ['jsx', 'classProperties', 'decorators-legacy'],
|
||||
},
|
||||
}).addPlugin(new VueLoaderPlugin());
|
||||
|
||||
|
||||
Encore.enableTypeScriptLoader(config => {
|
||||
// Loader-specific options
|
||||
config.configFile = 'tsconfig.vue.json';
|
||||
config.appendTsSuffixTo = [/\.vue$/];
|
||||
config.transpileOnly = true;
|
||||
config.happyPackMode = false;
|
||||
}, {
|
||||
// Directly change the exclude rule
|
||||
exclude: /node_modules/,
|
||||
|
||||
})
|
||||
.addAliases({
|
||||
'@': join(__dirname, 'resources/js'),
|
||||
'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
|
||||
})
|
||||
.configureDefinePlugin((options) => {
|
||||
options['__VUE_OPTIONS_API__'] = true;
|
||||
options['__VUE_PROD_DEVTOOLS__'] = false;
|
||||
})
|
||||
.addAliases({
|
||||
'@': join(__dirname, 'resources/js'),
|
||||
'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
|
||||
})
|
||||
.configureDefinePlugin((options) => {
|
||||
options['__VUE_OPTIONS_API__'] = true;
|
||||
options['__VUE_PROD_DEVTOOLS__'] = 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";
|
||||
config.resolve.extensions = ['.tsx', '.ts', '.mjs', '.js', '.jsx', '.vue', '.json', '.wasm'];
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Export config
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Export config for webpack to do its job
|
||||
|
|
||||
*/
|
||||
module.exports = config;
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue