102 lines
3.8 KiB
JavaScript
102 lines
3.8 KiB
JavaScript
/* eslint @typescript-eslint/no-var-requires: "off" */
|
|
const webpack = require("webpack");
|
|
// const { defineConfig } = require("@vue/cli-service");
|
|
// const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
|
|
const { VueLoaderPlugin } = require("vue-loader");
|
|
|
|
module.exports = {
|
|
lintOnSave: false,
|
|
publicPath: "/",
|
|
chainWebpack: (config) => {
|
|
const vueRule = config.module.rule("vue");
|
|
vueRule.uses.clear();
|
|
// const tsRule = config.module.rule("ts");
|
|
// tsRule.uses.clear();
|
|
// .plugin('define')
|
|
// .tap(args => {
|
|
// args[0] = {
|
|
// ...args[0],
|
|
// VUE_API: JSON.stringify(process.env.PORTAL),
|
|
// // other stuff
|
|
// }
|
|
// return args
|
|
// })
|
|
},
|
|
pages: {
|
|
index: {
|
|
// entry for the page
|
|
entry: "src/main.ts",
|
|
title: "TETHYS - Research Data Repository",
|
|
},
|
|
},
|
|
// devServer: {
|
|
// disableHostCheck: true,
|
|
// },
|
|
configureWebpack: {
|
|
devtool: "source-map",
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.vue$/,
|
|
loader: "vue-loader",
|
|
options: {
|
|
// loaders: {
|
|
// ts: 'ts-loader',
|
|
// },
|
|
cacheDirectory: "C:\\Users\\kaiarn\\Documents\\Software\\tethys.viewer\\node_modules\\.cache\\vue-loader",
|
|
cacheIdentifier: "39baf1b4",
|
|
babelParserPlugins: ["jsx", "classProperties", "decorators-legacy"],
|
|
},
|
|
},
|
|
// {
|
|
// test: /\.(js|jsx|ts|tsx)$/,
|
|
// // exclude: /(node_modules|bower_components)/,
|
|
// exclude: file => (
|
|
// /node_modules/.test(file) &&
|
|
// !/\.vue\.js/.test(file)
|
|
// ),
|
|
// exclude: /node_modules/,
|
|
// use: {
|
|
// loader: "babel-loader",
|
|
// options: {
|
|
// presets: [
|
|
// ["@babel/preset-env", {}],
|
|
// "babel-preset-typescript-vue3", //because of new vue setup method
|
|
// // "@babel/preset-typescript"
|
|
// ],
|
|
// plugins: [
|
|
// // "@babel/plugin-transform-runtime",
|
|
// ["@babel/plugin-proposal-decorators", { legacy: true }],
|
|
|
|
// "@babel/proposal-class-properties",
|
|
// ],
|
|
// },
|
|
// },
|
|
// },
|
|
],
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
vue$: "vue/dist/vue.runtime.esm-bundler.js",
|
|
},
|
|
extensions: [".tsx", ".ts", ".mjs", ".js", ".jsx", ".vue", ".json", ".wasm"],
|
|
},
|
|
plugins: [
|
|
new VueLoaderPlugin(),
|
|
new webpack.DefinePlugin({
|
|
__VUE_OPTIONS_API__: "true",
|
|
__VUE_PROD_DEVTOOLS__: "false",
|
|
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: "false",
|
|
APP_URL: JSON.stringify(process.env.APP_URL),
|
|
VUE_API: JSON.stringify(process.env.VUE_API),
|
|
// SOLR_HOST: JSON.stringify(process.env.SOLR_HOST),
|
|
// SOLR_CORE: JSON.stringify(process.env.SOLR_CORE),
|
|
// OPENSEARCH
|
|
OPEN_HOST: JSON.stringify(process.env.OPEN_HOST),
|
|
OPEN_CORE: JSON.stringify(process.env.OPEN_CORE),
|
|
}),
|
|
// new NodePolyfillPlugin(),
|
|
],
|
|
},
|
|
};
|