angular.json 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. {
  2. "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  3. "version": 1,
  4. "newProjectRoot": "projects",
  5. "projects": {
  6. "PeerTube": {
  7. "root": "",
  8. "sourceRoot": "src",
  9. "projectType": "application",
  10. "i18n": {
  11. "sourceLocale": {
  12. "code": "en",
  13. "baseHref": "/client/en-US/"
  14. },
  15. "locales": {
  16. "ar": {
  17. "translation": "src/locale/angular.ar.xlf",
  18. "baseHref": "/client/ar/"
  19. },
  20. "fa": {
  21. "translation": "src/locale/angular.fa-IR.xlf",
  22. "baseHref": "/client/fa-IR/"
  23. },
  24. "hu": {
  25. "translation": "src/locale/angular.hu-HU.xlf",
  26. "baseHref": "/client/hu-HU/"
  27. },
  28. "th": {
  29. "translation": "src/locale/angular.th-TH.xlf",
  30. "baseHref": "/client/th-TH/"
  31. },
  32. "tr": {
  33. "translation": "src/locale/angular.tr-TR.xlf",
  34. "baseHref": "/client/tr-TR/"
  35. },
  36. "fi": {
  37. "translation": "src/locale/angular.fi-FI.xlf",
  38. "baseHref": "/client/fi-FI/"
  39. },
  40. "nl": {
  41. "translation": "src/locale/angular.nl-NL.xlf",
  42. "baseHref": "/client/nl-NL/"
  43. },
  44. "gd": {
  45. "translation": "src/locale/angular.gd.xlf",
  46. "baseHref": "/client/gd/"
  47. },
  48. "el": {
  49. "translation": "src/locale/angular.el-GR.xlf",
  50. "baseHref": "/client/el-GR/"
  51. },
  52. "es": {
  53. "translation": "src/locale/angular.es-ES.xlf",
  54. "baseHref": "/client/es-ES/"
  55. },
  56. "oc": {
  57. "translation": "src/locale/angular.oc.xlf",
  58. "baseHref": "/client/oc/"
  59. },
  60. "pt": {
  61. "translation": "src/locale/angular.pt-BR.xlf",
  62. "baseHref": "/client/pt-BR/"
  63. },
  64. "pt-PT": {
  65. "translation": "src/locale/angular.pt-PT.xlf",
  66. "baseHref": "/client/pt-PT/"
  67. },
  68. "sv": {
  69. "translation": "src/locale/angular.sv-SE.xlf",
  70. "baseHref": "/client/sv-SE/"
  71. },
  72. "pl": {
  73. "translation": "src/locale/angular.pl-PL.xlf",
  74. "baseHref": "/client/pl-PL/"
  75. },
  76. "ru": {
  77. "translation": "src/locale/angular.ru-RU.xlf",
  78. "baseHref": "/client/ru-RU/"
  79. },
  80. "sq": {
  81. "translation": "src/locale/angular.sq.xlf",
  82. "baseHref": "/client/sq/"
  83. },
  84. "hr": {
  85. "translation": "src/locale/angular.hr.xlf",
  86. "baseHref": "/client/hr/"
  87. },
  88. "zh-Hans": {
  89. "translation": "src/locale/angular.zh-Hans-CN.xlf",
  90. "baseHref": "/client/zh-Hans-CN/"
  91. },
  92. "zh-Hant": {
  93. "translation": "src/locale/angular.zh-Hant-TW.xlf",
  94. "baseHref": "/client/zh-Hant-TW/"
  95. },
  96. "fr": {
  97. "translation": "src/locale/angular.fr-FR.xlf",
  98. "baseHref": "/client/fr-FR/"
  99. },
  100. "ja": {
  101. "translation": "src/locale/angular.ja-JP.xlf",
  102. "baseHref": "/client/ja-JP/"
  103. },
  104. "eu": {
  105. "translation": "src/locale/angular.eu-ES.xlf",
  106. "baseHref": "/client/eu-ES/"
  107. },
  108. "ca": {
  109. "translation": "src/locale/angular.ca-ES.xlf",
  110. "baseHref": "/client/ca-ES/"
  111. },
  112. "gl": {
  113. "translation": "src/locale/angular.gl-ES.xlf",
  114. "baseHref": "/client/gl-ES/"
  115. },
  116. "cs": {
  117. "translation": "src/locale/angular.cs-CZ.xlf",
  118. "baseHref": "/client/cs-CZ/"
  119. },
  120. "eo": {
  121. "translation": "src/locale/angular.eo.xlf",
  122. "baseHref": "/client/eo/"
  123. },
  124. "de": {
  125. "translation": "src/locale/angular.de-DE.xlf",
  126. "baseHref": "/client/de-DE/"
  127. },
  128. "it": {
  129. "translation": "src/locale/angular.it-IT.xlf",
  130. "baseHref": "/client/it-IT/"
  131. },
  132. "vi": {
  133. "translation": "src/locale/angular.vi-VN.xlf",
  134. "baseHref": "/client/vi-VN/"
  135. },
  136. "kab": {
  137. "translation": "src/locale/angular.kab.xlf",
  138. "baseHref": "/client/kab/"
  139. },
  140. "nb": {
  141. "translation": "src/locale/angular.nb-NO.xlf",
  142. "baseHref": "/client/nb-NO/"
  143. },
  144. "tok": {
  145. "translation": "src/locale/angular.tok.xlf",
  146. "baseHref": "/client/tok/"
  147. },
  148. "nn": {
  149. "translation": "src/locale/angular.nn.xlf",
  150. "baseHref": "/client/nn/"
  151. },
  152. "is": {
  153. "translation": "src/locale/angular.is.xlf",
  154. "baseHref": "/client/is/"
  155. },
  156. "uk": {
  157. "translation": "src/locale/angular.uk-UA.xlf",
  158. "baseHref": "/client/uk-UA/"
  159. }
  160. }
  161. },
  162. "architect": {
  163. "build": {
  164. "builder": "@angular-devkit/build-angular:browser",
  165. "options": {
  166. "localize": true,
  167. "outputPath": "dist",
  168. "index": "src/index.html",
  169. "main": "src/main.ts",
  170. "tsConfig": "tsconfig.json",
  171. "polyfills": "src/polyfills.ts",
  172. "baseHref": "/",
  173. "stylePreprocessorOptions": {
  174. "includePaths": [
  175. "src/sass/include"
  176. ]
  177. },
  178. "assets": [
  179. "src/assets/images",
  180. "src/manifest.webmanifest"
  181. ],
  182. "styles": [
  183. "src/sass/application.scss"
  184. ],
  185. "allowedCommonJsDependencies": [
  186. "qrcode",
  187. "chart.js",
  188. "htmlparser2",
  189. "markdown-it-emoji/light",
  190. "linkifyjs/lib/linkify-html",
  191. "linkifyjs/lib/plugins/mention",
  192. "sanitize-html",
  193. "debug",
  194. "@peertube/p2p-media-loader-hlsjs",
  195. "video.js",
  196. "sha.js",
  197. "postcss",
  198. "focus-visible",
  199. "path-browserify",
  200. "deep-merge",
  201. "escape-string-regexp",
  202. "is-plain-object",
  203. "parse-srcset",
  204. "deepmerge",
  205. "core-js/features/reflect",
  206. "@formatjs/intl-locale/polyfill",
  207. "@formatjs/intl-locale/should-polyfill",
  208. "@formatjs/intl-pluralrules/polyfill-force",
  209. "@formatjs/intl-pluralrules/should-polyfill"
  210. ],
  211. "scripts": [],
  212. "vendorChunk": true,
  213. "extractLicenses": false,
  214. "buildOptimizer": false,
  215. "sourceMap": true,
  216. "optimization": false,
  217. "namedChunks": true
  218. },
  219. "configurations": {
  220. "production": {
  221. "optimization": true,
  222. "outputHashing": "all",
  223. "sourceMap": false,
  224. "namedChunks": false,
  225. "extractLicenses": true,
  226. "vendorChunk": false,
  227. "buildOptimizer": true,
  228. "serviceWorker": true,
  229. "ngswConfigPath": "src/ngsw-config.json",
  230. "budgets": [
  231. {
  232. "type": "initial",
  233. "maximumWarning": "2mb",
  234. "maximumError": "5mb"
  235. },
  236. {
  237. "type": "anyComponentStyle",
  238. "maximumWarning": "6kb",
  239. "maximumError": "100kb"
  240. }
  241. ],
  242. "fileReplacements": [
  243. {
  244. "replace": "src/environments/environment.ts",
  245. "with": "src/environments/environment.prod.ts"
  246. }
  247. ]
  248. },
  249. "ar-locale": {
  250. "localize": [
  251. "ar"
  252. ],
  253. "budgets": [
  254. {
  255. "type": "anyComponentStyle",
  256. "maximumWarning": "6kb"
  257. }
  258. ],
  259. "fileReplacements": [
  260. {
  261. "replace": "src/environments/environment.ts",
  262. "with": "src/environments/environment.hmr.ts"
  263. }
  264. ]
  265. },
  266. "hmr": {
  267. "localize": false,
  268. "budgets": [
  269. {
  270. "type": "anyComponentStyle",
  271. "maximumWarning": "6kb"
  272. }
  273. ],
  274. "fileReplacements": [
  275. {
  276. "replace": "src/environments/environment.ts",
  277. "with": "src/environments/environment.hmr.ts"
  278. }
  279. ]
  280. }
  281. }
  282. },
  283. "serve": {
  284. "builder": "@angular-devkit/build-angular:dev-server",
  285. "options": {
  286. "proxyConfig": "proxy.config.json",
  287. "buildTarget": "PeerTube:build"
  288. },
  289. "configurations": {
  290. "production": {
  291. "buildTarget": "PeerTube:build:production"
  292. },
  293. "hmr": {
  294. "buildTarget": "PeerTube:build:hmr"
  295. },
  296. "ar-locale": {
  297. "buildTarget": "PeerTube:build:ar-locale"
  298. }
  299. }
  300. },
  301. "extract-i18n": {
  302. "builder": "@angular-devkit/build-angular:extract-i18n",
  303. "options": {
  304. "buildTarget": "PeerTube:build"
  305. }
  306. },
  307. "lint": {
  308. "builder": "@angular-eslint/builder:lint",
  309. "options": {
  310. "lintFilePatterns": [
  311. "e2e/**/*.ts",
  312. "src/**/*.ts",
  313. "src/**/*.html"
  314. ]
  315. }
  316. }
  317. }
  318. }
  319. },
  320. "schematics": {
  321. "@schematics/angular:component": {
  322. "prefix": "my",
  323. "style": "scss",
  324. "skipTests": true,
  325. "flat": true
  326. },
  327. "@schematics/angular:directive": {
  328. "prefix": "my"
  329. },
  330. "@angular-eslint/schematics:application": {
  331. "setParserOptionsProject": true
  332. },
  333. "@angular-eslint/schematics:library": {
  334. "setParserOptionsProject": true
  335. }
  336. },
  337. "cli": {
  338. "analytics": false
  339. }
  340. }