Reorganize frontend files and tooling (#10168)
- move "vendor" files to js/vendor and less/vendor - move swagger to js/standalone (meant for standalone pages) - move gitgraph to features and streamline its loading - add linting configs to webpack dependencies in make - set ignored files for eslint/stylelint directly in their configs Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									6e6da2c276
								
							
						
					
					
						commit
						fdf6d25915
					
				
					 12 changed files with 21 additions and 11 deletions
				
			
		|  | @ -1 +0,0 @@ | ||||||
| /web_src/js/semanticDropdown.js |  | ||||||
|  | @ -4,6 +4,9 @@ extends: | ||||||
|   - eslint-config-airbnb-base |   - eslint-config-airbnb-base | ||||||
|   - eslint:recommended |   - eslint:recommended | ||||||
| 
 | 
 | ||||||
|  | ignorePatterns: | ||||||
|  |  - /web_src/js/vendor | ||||||
|  | 
 | ||||||
| parserOptions: | parserOptions: | ||||||
|   ecmaVersion: 2020 |   ecmaVersion: 2020 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,6 +1,10 @@ | ||||||
| extends: stylelint-config-standard | extends: stylelint-config-standard | ||||||
| 
 | 
 | ||||||
|  | ignoreFiles: | ||||||
|  |   - web_src/less/vendor/**/* | ||||||
|  | 
 | ||||||
| rules: | rules: | ||||||
|  |   at-rule-empty-line-before: null | ||||||
|   block-closing-brace-empty-line-before: null |   block-closing-brace-empty-line-before: null | ||||||
|   color-hex-length: null |   color-hex-length: null | ||||||
|   comment-empty-line-before: null |   comment-empty-line-before: null | ||||||
|  |  | ||||||
							
								
								
									
										5
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Makefile
									
									
									
									
									
								
							|  | @ -56,7 +56,8 @@ LDFLAGS := $(LDFLAGS) -X "main.MakeVersion=$(MAKE_VERSION)" -X "main.Version=$(G | ||||||
| PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations/migration-test,$(filter-out code.gitea.io/gitea/integrations,$(shell GO111MODULE=on $(GO) list -mod=vendor ./... | grep -v /vendor/))) | PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations/migration-test,$(filter-out code.gitea.io/gitea/integrations,$(shell GO111MODULE=on $(GO) list -mod=vendor ./... | grep -v /vendor/))) | ||||||
| 
 | 
 | ||||||
| GO_SOURCES ?= $(shell find . -name "*.go" -type f) | GO_SOURCES ?= $(shell find . -name "*.go" -type f) | ||||||
| WEBPACK_SOURCES ?= $(shell find web_src/js web_src/css web_src/less -type f) | WEBPACK_SOURCES ?= $(shell find web_src/js web_src/less -type f) | ||||||
|  | WEBPACK_CONFIGS := webpack.config.js .eslintrc .stylelintrc | ||||||
| 
 | 
 | ||||||
| WEBPACK_DEST := public/js/index.js public/css/index.css | WEBPACK_DEST := public/js/index.js public/css/index.css | ||||||
| BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/templates/bindata.go | BINDATA_DEST := modules/public/bindata.go modules/options/bindata.go modules/templates/bindata.go | ||||||
|  | @ -517,7 +518,7 @@ $(FOMANTIC_EVIDENCE): semantic.json $(FOMANTIC_SOURCES) | node_modules | ||||||
| .PHONY: webpack | .PHONY: webpack | ||||||
| webpack: node-check $(WEBPACK_DEST) | webpack: node-check $(WEBPACK_DEST) | ||||||
| 
 | 
 | ||||||
| $(WEBPACK_DEST): $(WEBPACK_SOURCES) webpack.config.js | node_modules | $(WEBPACK_DEST): $(WEBPACK_SOURCES) $(WEBPACK_CONFIGS) | node_modules | ||||||
| 	npx eslint web_src/js webpack.config.js | 	npx eslint web_src/js webpack.config.js | ||||||
| 	npx stylelint web_src/less | 	npx stylelint web_src/less | ||||||
| 	npx webpack --hide-modules --display-entrypoints=false | 	npx webpack --hide-modules --display-entrypoints=false | ||||||
|  |  | ||||||
|  | @ -1,8 +1,8 @@ | ||||||
| $(async () => { | export default async function initGitGraph() { | ||||||
|   const graphCanvas = document.getElementById('graph-canvas'); |   const graphCanvas = document.getElementById('graph-canvas'); | ||||||
|   if (!graphCanvas) return; |   if (!graphCanvas) return; | ||||||
| 
 | 
 | ||||||
|   const { default: gitGraph } = await import(/* webpackChunkName: "gitgraph" */'./gitGraph.js'); |   const { default: gitGraph } = await import(/* webpackChunkName: "gitgraph" */'../vendor/gitGraph.js'); | ||||||
| 
 | 
 | ||||||
|   const graphList = []; |   const graphList = []; | ||||||
|   $('#graph-raw-list li span.node-relation').each(function () { |   $('#graph-raw-list li span.node-relation').each(function () { | ||||||
|  | @ -10,4 +10,4 @@ $(async () => { | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   gitGraph(graphCanvas, graphList); |   gitGraph(graphCanvas, graphList); | ||||||
| }); | } | ||||||
|  | @ -5,10 +5,11 @@ | ||||||
| import 'jquery.are-you-sure'; | import 'jquery.are-you-sure'; | ||||||
| import './publicPath.js'; | import './publicPath.js'; | ||||||
| import './polyfills.js'; | import './polyfills.js'; | ||||||
| import './gitGraphLoader.js'; | import './vendor/semanticDropdown.js'; | ||||||
| import './semanticDropdown.js'; | 
 | ||||||
| import initContextPopups from './features/contextPopup.js'; | import initContextPopups from './features/contextPopup.js'; | ||||||
| import initHighlight from './features/highlight.js'; | import initHighlight from './features/highlight.js'; | ||||||
|  | import initGitGraph from './features/gitGraph.js'; | ||||||
| 
 | 
 | ||||||
| import ActivityTopAuthors from './components/ActivityTopAuthors.vue'; | import ActivityTopAuthors from './components/ActivityTopAuthors.vue'; | ||||||
| 
 | 
 | ||||||
|  | @ -2578,6 +2579,7 @@ $(document).ready(async () => { | ||||||
|   initRepoStatusChecker(); |   initRepoStatusChecker(); | ||||||
|   initTemplateSearch(); |   initTemplateSearch(); | ||||||
|   initContextPopups(suburl); |   initContextPopups(suburl); | ||||||
|  |   initGitGraph(); | ||||||
| 
 | 
 | ||||||
|   // Repo clone url.
 |   // Repo clone url.
 | ||||||
|   if ($('#repo-clone-url').length > 0) { |   if ($('#repo-clone-url').length > 0) { | ||||||
|  |  | ||||||
|  | @ -1,3 +1,6 @@ | ||||||
|  | @import "~highlight.js/styles/github.css"; | ||||||
|  | @import "./vendor/gitGraph.css"; | ||||||
|  | 
 | ||||||
| @import "_tribute"; | @import "_tribute"; | ||||||
| @import "_emojify"; | @import "_emojify"; | ||||||
| @import "_base"; | @import "_base"; | ||||||
|  | @ -13,5 +16,3 @@ | ||||||
| @import "_admin"; | @import "_admin"; | ||||||
| @import "_explore"; | @import "_explore"; | ||||||
| @import "_review"; | @import "_review"; | ||||||
| @import "~highlight.js/styles/github.css"; |  | ||||||
| @import "../css/gitGraph.css"; |  | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ module.exports = { | ||||||
|       resolve(__dirname, 'web_src/less/index.less'), |       resolve(__dirname, 'web_src/less/index.less'), | ||||||
|     ], |     ], | ||||||
|     swagger: [ |     swagger: [ | ||||||
|       resolve(__dirname, 'web_src/js/swagger.js'), |       resolve(__dirname, 'web_src/js/standalone/swagger.js'), | ||||||
|     ], |     ], | ||||||
|     jquery: [ |     jquery: [ | ||||||
|       resolve(__dirname, 'web_src/js/jquery.js'), |       resolve(__dirname, 'web_src/js/jquery.js'), | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue