[WIP] #359: update dependencies

This commit is contained in:
Simon Vieille 2024-10-06 16:55:57 +02:00
commit 5cc8569277
3 changed files with 143 additions and 86 deletions

View file

@ -11,9 +11,13 @@
"stylelint:fix": "./node_modules/.bin/stylelint src --fix" "stylelint:fix": "./node_modules/.bin/stylelint src --fix"
}, },
"dependencies": { "dependencies": {
"@nextcloud/browserslist-config": "^3.0.1",
"@nextcloud/event-bus": "^3.3.1",
"@nextcloud/initial-state": "^2.2.0",
"@nextcloud/l10n": "^3.1.0",
"@vueuse/core": "^11.1.0",
"axios": "^1.6.7", "axios": "^1.6.7",
"trim": "^1.0.1", "trim": "^1.0.1"
"vue": "^2.6.11"
}, },
"browserslist": [ "browserslist": [
"extends @nextcloud/browserslist-config" "extends @nextcloud/browserslist-config"
@ -22,42 +26,46 @@
"node": ">=16.0.0" "node": ">=16.0.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.9.0", "@babel/node": "^7.25.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-private-methods": "^7.25.7",
"@babel/preset-env": "^7.9.0", "@babel/preset-typescript": "^7.24.7",
"@nextcloud/axios": "^2.3.0", "@cypress/vue2": "^2.1.1",
"@nextcloud/browserslist-config": "^2.3.0", "@cypress/webpack-preprocessor": "^6.0.2",
"@nextcloud/eslint-config": "^8.1.2", "@nextcloud/babel-config": "^1.2.0",
"@nextcloud/initial-state": "^2.0.0", "@nextcloud/eslint-config": "^8.4.1",
"@nextcloud/l10n": "^2.1.0", "@nextcloud/stylelint-config": "^3.0.1",
"@nextcloud/vue": "^7.12.1", "@nextcloud/typings": "^1.9.1",
"babel-eslint": "^10.1.0", "@nextcloud/webpack-vue-config": "^6.0.1",
"babel-loader": "^8.1.0", "@simplewebauthn/types": "^10.0.0",
"css-loader": "^6.10.0", "@types/dockerode": "^3.3.29",
"eslint": "^8.0.0", "@types/wait-on": "^5.3.4",
"eslint-config-standard": "^17.0.0", "@vue/tsconfig": "^0.5.1",
"eslint-import-resolver-webpack": "^0.12.1", "babel-loader": "^9.2.1",
"eslint-plugin-import": "^2.20.0", "babel-loader-exclude-node-modules-except": "^1.2.1",
"eslint-plugin-nextcloud": "^0.3.0", "babel-plugin-module-resolver": "^5.0.2",
"eslint-plugin-node": "^10.0.0", "colord": "^2.9.3",
"eslint-plugin-promise": "^6.0.0", "eslint-plugin-cypress": "^3.5.0",
"eslint-plugin-standard": "^4.0.1", "eslint-plugin-es": "^4.1.0",
"eslint-plugin-vue": "^9.0.0", "exports-loader": "^5.0.0",
"eslint-webpack-plugin": "^3.0.0", "file-loader": "^6.2.0",
"file-loader": "^6.0.0", "handlebars-loader": "^1.7.3",
"sass": "^1.49.9", "jasmine-core": "~2.5.2",
"sass-loader": "^13.0.2", "jasmine-sinon": "^0.4.0",
"stylelint": "^14.0.0", "jsdoc": "^4.0.2",
"stylelint-config-recommended-scss": "^7.0.0", "raw-loader": "^4.0.2",
"stylelint-scss": "^4.0.0", "sass": "^1.79.3",
"stylelint-webpack-plugin": "^3.3.0", "stylelint": "^16.9.0",
"url-loader": "^4.0.0", "stylelint-use-logical": "^2.1.2",
"vue-loader": "^15", "ts-loader": "^9.5.0",
"vue-style-loader": "^4.1.3", "ts-node": "^10.9.1",
"vue-template-compiler": "^2.7.13", "tslib": "^2.7.0",
"webpack": "^5.0.0", "typescript": "^5.6.2",
"webpack-cli": "^4.0.0", "vue-loader": "^15.9.8",
"webpack-merge": "^4.2.2", "vue-template-compiler": "^2.7.16",
"webpack-node-externals": "^1.7.2" "wait-on": "^8.0.1",
"webpack": "^5.94.0",
"webpack-cli": "^5.0.2",
"webpack-merge": "^6.0.1",
"workbox-webpack-plugin": "^7.1.0"
} }
} }

33
tsconfig.json Normal file
View file

@ -0,0 +1,33 @@
{
"extends": "@vue/tsconfig/tsconfig.json",
"include": ["./src/**/*.js"],
"compilerOptions": {
"types": ["node", "vue", "vue-router"],
"outDir": "./js/",
"target": "ESNext",
"module": "ESNext",
// Set module resolution to bundler and `noEmit` to be able to set `allowImportingTsExtensions`, so we can import Typescript with .ts extension
"moduleResolution": "Bundler",
"allowImportingTsExtensions": true,
"noEmit": true,
// Allow ts to import js files
"allowJs": true,
"allowSyntheticDefaultImports": true,
"declaration": false,
"noImplicitAny": false,
"resolveJsonModule": true,
"strict": true,
},
"vueCompilerOptions": {
"target": 2.7
},
"ts-node": {
// these options are overrides used only by ts-node
// same as our --compilerOptions flag and our TS_NODE_COMPILER_OPTIONS environment variable
"compilerOptions": {
"moduleResolution": "node",
"module": "commonjs",
"verbatimModuleSyntax": false
}
}
}

View file

@ -1,54 +1,70 @@
const path = require('path') const path = require('path')
const { VueLoaderPlugin } = require('vue-loader') const BabelLoaderExcludeNodeModulesExcept = require('babel-loader-exclude-node-modules-except')
const StyleLintPlugin = require('stylelint-webpack-plugin') const {
VueLoaderPlugin
} = require('vue-loader')
// const StyleLintPlugin = require('stylelint-webpack-plugin')
module.exports = { module.exports = {
devtool: "source-map", devtool: "source-map",
entry: { entry: {
'admin': path.join(__dirname, 'src', 'admin.js'), 'admin': path.join(__dirname, 'src', 'admin.js'),
'sideMenu': path.join(__dirname, 'src', 'SideMenu.js'), 'sideMenu': path.join(__dirname, 'src', 'SideMenu.js'),
}, },
output: { output: {
path: path.resolve(__dirname, './js'), path: path.resolve(__dirname, './js'),
publicPath: '/js', publicPath: '/js',
filename: '[name].js?v=[hash]', filename: '[name].js?v=[hash]',
chunkFilename: 'chunks/[name]-[hash].js', chunkFilename: 'chunks/[name]-[hash].js',
}, },
module: { module: {
rules: [ rules: [{
{ test: /\.css$/,
test: /\.css$/, use: ['vue-style-loader', 'css-loader'],
use: ['vue-style-loader', 'css-loader'], },
}, {
{ test: /\.scss$/,
test: /\.scss$/, use: ['vue-style-loader', 'css-loader', 'sass-loader'],
use: ['vue-style-loader', 'css-loader', 'sass-loader'], },
}, {
{ test: /\.vue$/,
test: /\.vue$/, loader: 'vue-loader',
loader: 'vue-loader', },
}, {
{ test: /\.tsx?$/,
test: /\.js$/, use: [
loader: 'babel-loader', 'babel-loader',
exclude: /node_modules/, {
}, // Fix TypeScript syntax errors in Vue
{ loader: 'ts-loader',
test: /\.(png|jpg|gif|svg)$/, options: {
loader: 'url-loader', transpileOnly: true,
options: {
name: '[name].[ext]?[hash]',
limit: 8192,
},
}, },
},
], ],
}, exclude: BabelLoaderExcludeNodeModulesExcept([]),
plugins: [ },
new VueLoaderPlugin(), {
new StyleLintPlugin(), test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: 'url-loader',
options: {
name: '[name].[ext]?[hash]',
limit: 8192,
},
},
], ],
resolve: { },
extensions: ['*', '.js', '.vue'], plugins: [
symlinks: false, new VueLoaderPlugin(),
}, // new StyleLintPlugin(),
],
resolve: {
extensions: ['.*', '.js', '.vue'],
symlinks: false,
},
} }