angular.json 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. {
  2. "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  3. "version": 1,
  4. "newProjectRoot": "projects",
  5. "projects": {
  6. "thingsboard": {
  7. "root": "",
  8. "sourceRoot": "src",
  9. "projectType": "application",
  10. "prefix": "tb",
  11. "schematics": {
  12. "@schematics/angular:component": {
  13. "style": "scss"
  14. },
  15. "@schematics/angular:application": {
  16. "strict": true
  17. }
  18. },
  19. "architect": {
  20. "build": {
  21. "builder": "@angular-builders/custom-webpack:browser",
  22. "options": {
  23. "outputPath": "target/generated-resources/public",
  24. "index": "src/index.html",
  25. "main": "src/main.ts",
  26. "polyfills": "src/polyfills.ts",
  27. "tsConfig": "src/tsconfig.app.json",
  28. "aot": true,
  29. "assets": [
  30. "src/yunmai.ico",
  31. "src/assets",
  32. {
  33. "glob": "*.svg",
  34. "input": "./node_modules/@mdi/svg/svg/",
  35. "output": "/assets/mdi/"
  36. },
  37. {
  38. "glob": "worker-html.js",
  39. "input": "./node_modules/ace-builds/src-noconflict/",
  40. "output": "/"
  41. },
  42. {
  43. "glob": "worker-css.js",
  44. "input": "./node_modules/ace-builds/src-noconflict/",
  45. "output": "/"
  46. },
  47. {
  48. "glob": "worker-json.js",
  49. "input": "./node_modules/ace-builds/src-noconflict/",
  50. "output": "/"
  51. },
  52. {
  53. "glob": "worker-javascript.js",
  54. "input": "./node_modules/ace-builds/src-noconflict/",
  55. "output": "/"
  56. },
  57. {
  58. "glob": "worker-tbel.js",
  59. "input": "./src/app/shared/models/ace/tbel/",
  60. "output": "/"
  61. },
  62. {
  63. "glob": "**/*",
  64. "input": "node_modules/tinymce",
  65. "output": "/assets/tinymce/"
  66. },
  67. {
  68. "glob": "marker-icon-2x.png",
  69. "input": "node_modules/leaflet/dist/images/",
  70. "output": "/"
  71. },
  72. {
  73. "glob": "marker-icon.png",
  74. "input": "node_modules/leaflet/dist/images/",
  75. "output": "/"
  76. },
  77. {
  78. "glob": "marker-shadow.png",
  79. "input": "node_modules/leaflet/dist/images/",
  80. "output": "/"
  81. }
  82. ],
  83. "styles": [
  84. "src/styles.scss",
  85. "src/form.scss",
  86. "node_modules/jquery.terminal/css/jquery.terminal.min.css",
  87. "node_modules/tooltipster/dist/css/tooltipster.bundle.min.css",
  88. "node_modules/tooltipster/dist/css/plugins/tooltipster/sideTip/themes/tooltipster-sideTip-shadow.min.css",
  89. "src/app/shared/components/json-form/react/json-form.scss",
  90. "node_modules/rc-select/assets/index.less",
  91. "node_modules/jstree-bootstrap-theme/dist/themes/proton/style.min.css",
  92. "node_modules/leaflet/dist/leaflet.css",
  93. "src/app/modules/home/components/widget/lib/maps/markers.scss",
  94. "src/app/modules/home/components/widget/lib/home-page/home-page.scss",
  95. "node_modules/leaflet.markercluster/dist/MarkerCluster.css",
  96. "node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css",
  97. "node_modules/@geoman-io/leaflet-geoman-free/dist/leaflet-geoman.css",
  98. "node_modules/prismjs/themes/prism.css",
  99. "node_modules/prismjs/plugins/line-numbers/prism-line-numbers.css",
  100. "node_modules/ace-diff/dist/ace-diff.min.css"
  101. ],
  102. "stylePreprocessorOptions": {
  103. "includePaths": [
  104. "src/scss"
  105. ]
  106. },
  107. "scripts": [
  108. "node_modules/tinycolor2/dist/tinycolor-min.js",
  109. "node_modules/split.js/dist/split.min.js",
  110. "node_modules/systemjs/dist/system.min.js",
  111. "node_modules/marked/lib/marked.umd.js",
  112. "node_modules/prismjs/prism.js",
  113. "node_modules/prismjs/components/prism-css.min.js",
  114. "node_modules/prismjs/components/prism-bash.min.js",
  115. "node_modules/prismjs/components/prism-json.min.js",
  116. "node_modules/prismjs/components/prism-javascript.min.js",
  117. "node_modules/prismjs/components/prism-typescript.min.js",
  118. "node_modules/prismjs/plugins/line-numbers/prism-line-numbers.min.js"
  119. ],
  120. "customWebpackConfig": {
  121. "path": "./extra-webpack.config.js"
  122. },
  123. "allowedCommonJsDependencies": [
  124. "hammerjs",
  125. "react",
  126. "react-dom",
  127. "reactcss",
  128. "react-ace",
  129. "schema-inspector",
  130. "@flowjs/flow.js",
  131. "@material-ui/icons/Add",
  132. "@material-ui/icons/Clear",
  133. "js-beautify",
  134. "mousetrap",
  135. "prop-types",
  136. "react-is",
  137. "hoist-non-react-statics",
  138. "classnames",
  139. "raf",
  140. "moment-timezone",
  141. "tinycolor2",
  142. "json-schema-defaults",
  143. "leaflet-providers",
  144. "lodash",
  145. "jquery",
  146. "jquery.terminal",
  147. "tooltipster",
  148. "jstree",
  149. "qrcode",
  150. "wcwidth",
  151. "leaflet-polylinedecorator",
  152. "ace-diff",
  153. "messageformat-parser",
  154. "html2canvas",
  155. "jszip",
  156. "moment",
  157. "ace",
  158. "ace-builds",
  159. "diff-match-patch",
  160. "tv4",
  161. "@messageformat/parser"
  162. ]
  163. },
  164. "configurations": {
  165. "production": {
  166. "fileReplacements": [
  167. {
  168. "replace": "src/environments/environment.ts",
  169. "with": "src/environments/environment.prod.ts"
  170. }
  171. ],
  172. "optimization": {
  173. "scripts": true,
  174. "styles": {
  175. "minify": true,
  176. "inlineCritical": false
  177. },
  178. "fonts": false
  179. },
  180. "outputHashing": "all",
  181. "sourceMap": false,
  182. "namedChunks": false,
  183. "extractLicenses": true,
  184. "vendorChunk": false,
  185. "buildOptimizer": false,
  186. "budgets": [
  187. {
  188. "type": "initial",
  189. "maximumWarning": "9mb",
  190. "maximumError": "12mb"
  191. }
  192. ]
  193. },
  194. "development": {
  195. "buildOptimizer": false,
  196. "optimization": {
  197. "scripts": false,
  198. "styles": {
  199. "minify": false,
  200. "inlineCritical": false
  201. },
  202. "fonts": false
  203. },
  204. "vendorChunk": true,
  205. "extractLicenses": false,
  206. "sourceMap": true,
  207. "namedChunks": true
  208. }
  209. }
  210. },
  211. "serve": {
  212. "builder": "@angular-builders/custom-webpack:dev-server",
  213. "options": {
  214. "browserTarget": "thingsboard:build",
  215. "proxyConfig": "proxy.conf.js"
  216. },
  217. "configurations": {
  218. "production": {
  219. "browserTarget": "thingsboard:build:production"
  220. },
  221. "development": {
  222. "browserTarget": "thingsboard:build:development"
  223. }
  224. },
  225. "defaultConfiguration": "development"
  226. },
  227. "extract-i18n": {
  228. "builder": "@angular-devkit/build-angular:extract-i18n",
  229. "options": {
  230. "browserTarget": "thingsboard:build"
  231. }
  232. },
  233. "test": {
  234. "builder": "@angular-devkit/build-angular:karma",
  235. "options": {
  236. "main": "src/test.ts",
  237. "polyfills": "src/polyfills.ts",
  238. "tsConfig": "src/tsconfig.spec.json",
  239. "karmaConfig": "src/karma.conf.js",
  240. "styles": [
  241. "src/styles.scss"
  242. ],
  243. "scripts": [],
  244. "assets": [
  245. "src/favicon.ico",
  246. "src/assets"
  247. ]
  248. }
  249. },
  250. "lint": {
  251. "builder": "@angular-eslint/builder:lint",
  252. "options": {
  253. "lintFilePatterns": [
  254. "src/**/*.ts",
  255. "src/**/*.html"
  256. ]
  257. }
  258. }
  259. }
  260. },
  261. "thingsboard-e2e": {
  262. "root": "e2e/",
  263. "projectType": "application",
  264. "prefix": "",
  265. "architect": {
  266. "e2e": {
  267. "builder": "@angular-devkit/build-angular:protractor",
  268. "options": {
  269. "protractorConfig": "e2e/protractor.conf.js",
  270. "devServerTarget": "thingsboard:serve"
  271. },
  272. "configurations": {
  273. "production": {
  274. "devServerTarget": "thingsboard:serve:production"
  275. }
  276. }
  277. }
  278. }
  279. }
  280. },
  281. "cli": {
  282. "packageManager": "yarn",
  283. "analytics": false,
  284. "schematicCollections": [
  285. "@angular-eslint/schematics"
  286. ]
  287. }
  288. }