debian-mirror-gitlab/debian/patches/0740-use-packaged-modules.patch
2020-07-02 01:55:08 +05:30

208 lines
6.7 KiB
Diff

Use debian packaged node modules when available
- Exclude packaged modules from transpiling
- Remove webpack-bundle-analyzer
- Resolve .json files
- Add more plugins to babel.config.js
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -6,7 +6,6 @@
const StatsWriterPlugin = require('webpack-stats-plugin').StatsWriterPlugin;
const CompressionPlugin = require('compression-webpack-plugin');
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
-const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const CopyWebpackPlugin = require('copy-webpack-plugin');
const vendorDllHash = require('./helpers/vendor_dll_hash');
@@ -148,13 +147,13 @@
},
resolve: {
- extensions: ['.js', '.gql', '.graphql'],
- modules: ['/usr/share/gitlab/node_modules','/usr/share/gitlab/node_modules/mermaid/node_modules', '/usr/lib/nodejs'],
+ extensions: ['.js', '.gql', '.graphql', '.json'],
+ modules: ['/usr/share/gitlab/node_modules','/usr/share/gitlab/vendor/node_modules','/usr/share/gitlab/node_modules/mermaid/node_modules', '/usr/share/gitlab/node_modules/markdown-it/node_modules/', '/usr/lib/nodejs', '/usr/share/nodejs'],
alias,
},
resolveLoader: {
- modules: ['/usr/share/gitlab/node_modules', '/usr/lib/nodejs'],
+ modules: ['/usr/share/gitlab/node_modules', '/usr/lib/nodejs','/usr/share/nodejs'],
},
module: {
@@ -167,9 +166,13 @@
},
{
test: /\.js$/,
- exclude: path =>
+ exclude: [ path =>
/node_modules\/(?!tributejs)|node_modules|vendor[\\/]assets/.test(path) &&
!/\.vue\.js/.test(path),
+ /\/usr\/share\/nodejs/,
+ /\/usr\/lib\/nodejs/,
+ /\/usr\/share\/javascript/
+ ],
loader: 'babel-loader',
options: {
cacheDirectory: path.join(CACHE_PATH, 'babel-loader'),
@@ -501,19 +504,6 @@
// enable HMR only in webpack-dev-server
DEV_SERVER_LIVERELOAD && new webpack.HotModuleReplacementPlugin(),
- // optionally generate webpack bundle analysis
- WEBPACK_REPORT &&
- new BundleAnalyzerPlugin({
- analyzerMode: 'static',
- generateStatsFile: true,
- openAnalyzer: false,
- reportFilename: path.join(ROOT_PATH, 'webpack-report/index.html'),
- statsFilename: path.join(ROOT_PATH, 'webpack-report/stats.json'),
- statsOptions: {
- source: false,
- },
- }),
-
new webpack.DefinePlugin({
// This one is used to define window.gon.ee and other things properly in tests:
'process.env.IS_EE': JSON.stringify(IS_EE),
@@ -547,6 +537,7 @@
node: {
fs: 'empty', // sqljs requires fs
+ Buffer: 'mock',
setImmediate: false,
},
};
--- a/package.json
+++ b/package.json
@@ -33,12 +33,6 @@
"webpack-prod": "NODE_OPTIONS=\"--max-old-space-size=3584\" NODE_ENV=production webpack --config config/webpack.config.js"
},
"dependencies": {
- "@babel/core": "^7.10.1",
- "@babel/plugin-proposal-class-properties": "^7.10.1",
- "@babel/plugin-proposal-json-strings": "^7.10.1",
- "@babel/plugin-proposal-private-methods": "^7.10.1",
- "@babel/plugin-syntax-import-meta": "^7.10.1",
- "@babel/preset-env": "^7.10.1",
"@gitlab/at.js": "1.5.5",
"@gitlab/svgs": "1.140.0",
"@gitlab/ui": "17.0.1",
@@ -53,54 +47,31 @@
"apollo-link": "^1.2.11",
"apollo-link-batch-http": "^1.2.11",
"apollo-upload-client": "^10.0.0",
- "autosize": "^4.0.2",
"aws-sdk": "^2.637.0",
- "axios": "^0.19.0",
- "babel-loader": "^8.0.6",
"babel-plugin-lodash": "^3.3.4",
"bootstrap": "4.4.1",
- "brace-expansion": "^1.1.8",
- "cache-loader": "^4.1.0",
"classlist-polyfill": "^1.2.0",
- "clipboard": "^1.7.1",
"codemirror": "^5.48.4",
"codesandbox-api": "0.0.23",
- "compression-webpack-plugin": "^3.0.1",
"copy-webpack-plugin": "^5.0.5",
- "core-js": "^3.6.4",
"cropper": "^2.3.0",
- "css-loader": "^2.1.1",
"d3": "^5.16.0",
"d3-sankey": "^0.12.3",
- "d3-scale": "^2.2.2",
- "d3-selection": "^1.2.0",
- "dateformat": "^3.0.3",
- "deckar01-task_list": "^2.3.1",
"diff": "^3.4.0",
"document-register-element": "1.14.3",
"dropzone": "^4.2.0",
"editorconfig": "^0.15.3",
"emoji-regex": "^7.0.3",
"emoji-unicode-version": "^0.2.1",
- "exports-loader": "^0.7.0",
"file-loader": "^5.1.0",
"formdata-polyfill": "^3.0.19",
"fuzzaldrin-plus": "^0.6.0",
- "glob": "^7.1.6",
"graphql": "^14.0.2",
"immer": "^5.2.1",
- "imports-loader": "^0.8.0",
- "jed": "^1.1.1",
"jest-transform-graphql": "^2.1.0",
- "jquery": "^3.4.1",
- "jquery-ujs": "1.2.2",
"jquery.caret": "^0.3.1",
"jquery.waitforimages": "^2.2.0",
- "js-cookie": "^2.2.1",
- "jszip": "^3.1.3",
- "jszip-utils": "^0.0.2",
"katex": "^0.10.0",
- "lodash": "^4.17.15",
"marked": "^0.3.12",
"mermaid": "^8.5.2",
"mersenne-twister": "1.1.0",
@@ -108,13 +79,9 @@
"mitt": "^1.2.0",
"monaco-editor": "^0.18.1",
"monaco-editor-webpack-plugin": "^1.7.0",
- "mousetrap": "^1.4.6",
"pdfjs-dist": "^2.0.943",
"pikaday": "^1.8.0",
- "popper.js": "^1.16.1",
- "prismjs": "^1.6.0",
"prosemirror-markdown": "^1.3.0",
- "prosemirror-model": "^1.6.4",
"raphael": "^2.2.7",
"raw-loader": "^4.0.0",
"sanitize-html": "^1.22.0",
@@ -128,31 +95,21 @@
"svg4everybody": "2.1.9",
"swagger-ui-dist": "^3.26.2",
"three": "^0.84.0",
- "three-orbit-controls": "^82.1.0",
- "three-stl-loader": "^1.0.4",
"timeago.js": "^4.0.2",
"tiptap": "^1.8.0",
"tiptap-commands": "^1.4.0",
"tiptap-extensions": "^1.8.0",
"tributejs": "4.1.3",
"unfetch": "^4.1.0",
- "url-loader": "^3.0.0",
"uuid": "8.1.0",
"visibilityjs": "^1.2.4",
- "vue": "^2.6.10",
"vue-apollo": "^3.0.3",
"vue-loader": "^15.9.0",
"vue-router": "^3.0.2",
- "vue-template-compiler": "^2.6.10",
"vue-virtual-scroll-list": "^1.4.4",
"vuedraggable": "^2.23.0",
"vuex": "^3.1.0",
- "webpack": "^4.42.0",
- "webpack-bundle-analyzer": "^3.6.0",
- "webpack-cli": "^3.3.11",
- "webpack-stats-plugin": "^0.3.1",
- "worker-loader": "^2.0.0",
- "xterm": "3.14.5"
+ "webpack-stats-plugin": "^0.3.1"
},
"devDependencies": {
},
--- a/babel.config.js
+++ b/babel.config.js
@@ -19,9 +19,12 @@
// include stage 3 proposals
const plugins = [
'@babel/plugin-syntax-import-meta',
+ '@babel/plugin-syntax-dynamic-import',
'@babel/plugin-proposal-class-properties',
'@babel/plugin-proposal-json-strings',
'@babel/plugin-proposal-private-methods',
+ '@babel/plugin-proposal-optional-chaining',
+ '@babel/plugin-proposal-nullish-coalescing-operator',
'lodash',
];