@teambit/workspace-config-files 1.0.381 → 1.0.383
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/__bit_junit.xml +1 -1
- package/artifacts/preview/teambit_workspace_workspace_config_files-preview.js +1 -1
- package/artifacts/schema.json +1 -1
- package/dist/{preview-1723519217877.js → preview-1724037552319.js} +1 -1
- package/dist/workspace-config-files.docs.mdx +99 -1
- package/package.json +7 -7
- package/workspace-config-files.docs.mdx +99 -1
- package/tsconfig.json +0 -39
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<testsuites tests="6" failures="0" errors="0" skipped="0">
|
|
3
|
-
<testsuite name="teambit.workspace/workspace-config-files@1.0.
|
|
3
|
+
<testsuite name="teambit.workspace/workspace-config-files@1.0.383" tests="6" failures="0" errors="0" skipped="0">
|
|
4
4
|
<testcase classname="dist/dedup-paths.spec.js" name="should reduce files to minimum necessary" time="0.001"/>
|
|
5
5
|
<testcase classname="dist/dedup-paths.spec.js" name="should place files in correct folders"/>
|
|
6
6
|
<testcase classname="dist/dedup-paths.spec.js" name="should reduce files to minimum necessary"/>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports["teambit.workspace/workspace-config-files-preview"]=n():e["teambit.workspace/workspace-config-files-preview"]=n()}(self,(()=>(()=>{"use strict";var e={d:(n,o)=>{for(var t in o)e.o(o,t)&&!e.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:o[t]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{compositions:()=>
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports["teambit.workspace/workspace-config-files-preview"]=n():e["teambit.workspace/workspace-config-files-preview"]=n()}(self,(()=>(()=>{"use strict";var e={d:(n,o)=>{for(var t in o)e.o(o,t)&&!e.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:o[t]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{compositions:()=>s,compositions_metadata:()=>c,overview:()=>d});var o={};e.r(o),e.d(o,{default:()=>p}),React;const t=MdxJsReact,a=TeambitMdxUiMdxScopeContext;var i=["components"];function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var o=arguments[n];for(var t in o)({}).hasOwnProperty.call(o,t)&&(e[t]=o[t])}return e},r.apply(null,arguments)}var m={},l="wrapper";function p(e){var n=e.components,o=function(e,n){if(null==e)return{};var o,t,a=function(e,n){if(null==e)return{};var o={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(n.includes(t))continue;o[t]=e[t]}return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t<i.length;t++)o=i[t],n.includes(o)||{}.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}(e,i);return(0,t.mdx)(l,r({},m,o,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)(a.MDXScopeProvider,{components:{},mdxType:"MDXScopeProvider"},(0,t.mdx)("p",null,"This aspect provides the ability to write configuration files in the workspace.\nThe main goal for these config file writers is to ensure that the LSP/IDE produces the same results as running the relevant commands (such as bit lint, bit format, or bit check types/TypeScript during build). It provides an API to write configuration files in the workspace, and also provides CLI commands to do so."),(0,t.mdx)("h3",null,"Commands"),(0,t.mdx)("p",null,"Main command is ",(0,t.mdx)("inlineCode",{parentName:"p"},"bit ws-config")," which has the following sub commands:"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"bit ws-config write")," - write configuration files according to the components' envs"),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"bit ws-config clean")," - remove all configuration files from the workspace"),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"bit ws-config list")," - list all registered configuration writers.\nthis is useful for filtering used configuration writers when using the ",(0,t.mdx)("inlineCode",{parentName:"li"},"--writers")," flag in the write/clean commands.")),(0,t.mdx)("h3",null,"How it works"),(0,t.mdx)("p",null,(0,t.mdx)("strong",{parentName:"p"},"Background:")),(0,t.mdx)("p",null,"Bit structures its workspaces in a manner that, while reminiscent of monorepos, introduces additional complexities:"),(0,t.mdx)("ol",null,(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("p",{parentName:"li"},(0,t.mdx)("strong",{parentName:"p"},"Component Isolation:")," Each component behaves as an isolated package with its own ",(0,t.mdx)("inlineCode",{parentName:"p"},"package.json")," and configuration files (like ",(0,t.mdx)("inlineCode",{parentName:"p"},"tsconfig"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"eslint"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"prettier"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"jest"),", etc.). Some components might share configurations.")),(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("p",{parentName:"li"},(0,t.mdx)("strong",{parentName:"p"},"Directory Structure Example:")),(0,t.mdx)("pre",{parentName:"li"},(0,t.mdx)("code",{parentName:"pre"},"- Root\n - node_modules\n - React-env\n - config1\n - Node-env\n - config2\n - Lit-env\n - config3\n - Users-domain\n - React-comp1\n - React-comp2\n - Node-comp1\n - Ecommerce-domain\n - React-comp3\n - React-comp4\n - Node-comp1\n - Node-comp2\n - Lit-comp1\n - Lit-comp2\n - Lit-comp3\n")),(0,t.mdx)("ul",{parentName:"li"},(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("strong",{parentName:"li"},"Observations:"),(0,t.mdx)("ul",{parentName:"li"},(0,t.mdx)("li",{parentName:"ul"},"Sibling directories may require different configs at any hierarchy level."),(0,t.mdx)("li",{parentName:"ul"},"Components across different domains might share the same config."),(0,t.mdx)("li",{parentName:"ul"},"Actual config files reside within ",(0,t.mdx)("inlineCode",{parentName:"li"},"node_modules")," packages, not directly in the source folders.")))))),(0,t.mdx)("p",null,(0,t.mdx)("strong",{parentName:"p"},"Flow:")),(0,t.mdx)("ol",null,(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("p",{parentName:"li"},(0,t.mdx)("strong",{parentName:"p"},"Determining Config Associations:")),(0,t.mdx)("ul",{parentName:"li"},(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("strong",{parentName:"li"},"Step 1:")," Identify the relevant config files for each component (e.g., for ESLint)."),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("strong",{parentName:"li"},"Step 2:")," Group components sharing the same config."),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("strong",{parentName:"li"},"Step 3:")," Map the relevant paths for each config.")),(0,t.mdx)("p",{parentName:"li"},(0,t.mdx)("em",{parentName:"p"},"Example Outcome:")),(0,t.mdx)("pre",{parentName:"li"},(0,t.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "Config1": [\n "users-domain/react-comp1",\n "users-domain/react-comp2",\n "ecommerce-domain/react-comp3",\n "ecommerce-domain/react-comp4"\n ],\n "Config2": ["..."],\n "Config3": ["..."]\n}\n'))),(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("p",{parentName:"li"},(0,t.mdx)("strong",{parentName:"p"},"Optimizing Config File Placement:")),(0,t.mdx)("ul",{parentName:"li"},(0,t.mdx)("li",{parentName:"ul"},"Develop an algorithm to determine optimal locations for generated config files, minimizing workspace pollution.")),(0,t.mdx)("p",{parentName:"li"},(0,t.mdx)("em",{parentName:"p"},"Example Outcome:")),(0,t.mdx)("pre",{parentName:"li"},(0,t.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "root": "generated-config1", // Predominantly React components\n "users-domain": "generated-config2", // Exclusively Node components\n "ecommerce-domain": "generated-config3",\n "ecommerce-domain/node-comp1": "generated-config2",\n "ecommerce-domain/node-comp2": "generated-config2"\n}\n'))),(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("p",{parentName:"li"},(0,t.mdx)("strong",{parentName:"p"},"Filesystem Structure:")),(0,t.mdx)("pre",{parentName:"li"},(0,t.mdx)("code",{parentName:"pre"},"- Root\n - node_modules\n - .config-files-dir\n - Config1.<hash>.js\n - Config2.<hash>.js\n - Config3.<hash>.js\n- generated-config1\n- ...\n")),(0,t.mdx)("p",{parentName:"li"},"Each ",(0,t.mdx)("inlineCode",{parentName:"p"},"generated-config")," extends its respective config file:"),(0,t.mdx)("pre",{parentName:"li"},(0,t.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "extends": ["./node_modules/.config-files-dir/.eslintrc.bit.<hash>.json"]\n}\n'))))))}p.isMDXComponent=!0;const s=[],d=[o],c={compositions:[]};return n})()));
|
package/artifacts/schema.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
;
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace-config-files@1.0.
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace-config-files@1.0.383/dist/workspace-config-files.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -4,7 +4,7 @@ labels: ['core aspect', 'cli', 'configuration', 'workspace']
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
This aspect provides the ability to write configuration files in the workspace.
|
|
7
|
-
It provides an API to write configuration files in the workspace, and also provides
|
|
7
|
+
The main goal for these config file writers is to ensure that the LSP/IDE produces the same results as running the relevant commands (such as bit lint, bit format, or bit check types/TypeScript during build). It provides an API to write configuration files in the workspace, and also provides CLI commands to do so.
|
|
8
8
|
|
|
9
9
|
### Commands
|
|
10
10
|
|
|
@@ -14,3 +14,101 @@ Main command is `bit ws-config` which has the following sub commands:
|
|
|
14
14
|
- `bit ws-config clean` - remove all configuration files from the workspace
|
|
15
15
|
- `bit ws-config list` - list all registered configuration writers.
|
|
16
16
|
this is useful for filtering used configuration writers when using the `--writers` flag in the write/clean commands.
|
|
17
|
+
|
|
18
|
+
### How it works
|
|
19
|
+
|
|
20
|
+
**Background:**
|
|
21
|
+
|
|
22
|
+
Bit structures its workspaces in a manner that, while reminiscent of monorepos, introduces additional complexities:
|
|
23
|
+
|
|
24
|
+
1. **Component Isolation:** Each component behaves as an isolated package with its own `package.json` and configuration files (like `tsconfig`, `eslint`, `prettier`, `jest`, etc.). Some components might share configurations.
|
|
25
|
+
|
|
26
|
+
2. **Directory Structure Example:**
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
- Root
|
|
30
|
+
- node_modules
|
|
31
|
+
- React-env
|
|
32
|
+
- config1
|
|
33
|
+
- Node-env
|
|
34
|
+
- config2
|
|
35
|
+
- Lit-env
|
|
36
|
+
- config3
|
|
37
|
+
- Users-domain
|
|
38
|
+
- React-comp1
|
|
39
|
+
- React-comp2
|
|
40
|
+
- Node-comp1
|
|
41
|
+
- Ecommerce-domain
|
|
42
|
+
- React-comp3
|
|
43
|
+
- React-comp4
|
|
44
|
+
- Node-comp1
|
|
45
|
+
- Node-comp2
|
|
46
|
+
- Lit-comp1
|
|
47
|
+
- Lit-comp2
|
|
48
|
+
- Lit-comp3
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
- **Observations:**
|
|
52
|
+
- Sibling directories may require different configs at any hierarchy level.
|
|
53
|
+
- Components across different domains might share the same config.
|
|
54
|
+
- Actual config files reside within `node_modules` packages, not directly in the source folders.
|
|
55
|
+
|
|
56
|
+
**Flow:**
|
|
57
|
+
|
|
58
|
+
1. **Determining Config Associations:**
|
|
59
|
+
|
|
60
|
+
- **Step 1:** Identify the relevant config files for each component (e.g., for ESLint).
|
|
61
|
+
- **Step 2:** Group components sharing the same config.
|
|
62
|
+
- **Step 3:** Map the relevant paths for each config.
|
|
63
|
+
|
|
64
|
+
_Example Outcome:_
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"Config1": [
|
|
69
|
+
"users-domain/react-comp1",
|
|
70
|
+
"users-domain/react-comp2",
|
|
71
|
+
"ecommerce-domain/react-comp3",
|
|
72
|
+
"ecommerce-domain/react-comp4"
|
|
73
|
+
],
|
|
74
|
+
"Config2": ["..."],
|
|
75
|
+
"Config3": ["..."]
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
2. **Optimizing Config File Placement:**
|
|
80
|
+
|
|
81
|
+
- Develop an algorithm to determine optimal locations for generated config files, minimizing workspace pollution.
|
|
82
|
+
|
|
83
|
+
_Example Outcome:_
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"root": "generated-config1", // Predominantly React components
|
|
88
|
+
"users-domain": "generated-config2", // Exclusively Node components
|
|
89
|
+
"ecommerce-domain": "generated-config3",
|
|
90
|
+
"ecommerce-domain/node-comp1": "generated-config2",
|
|
91
|
+
"ecommerce-domain/node-comp2": "generated-config2"
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
3. **Filesystem Structure:**
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
- Root
|
|
99
|
+
- node_modules
|
|
100
|
+
- .config-files-dir
|
|
101
|
+
- Config1.<hash>.js
|
|
102
|
+
- Config2.<hash>.js
|
|
103
|
+
- Config3.<hash>.js
|
|
104
|
+
- generated-config1
|
|
105
|
+
- ...
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Each `generated-config` extends its respective config file:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"extends": ["./node_modules/.config-files-dir/.eslintrc.bit.<hash>.json"]
|
|
113
|
+
}
|
|
114
|
+
```
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/workspace-config-files",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.383",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/workspace/workspace-config-files",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.workspace",
|
|
8
8
|
"name": "workspace-config-files",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.383"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"lodash": "4.17.21",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"string-format": "0.5.0",
|
|
20
20
|
"@teambit/harmony": "0.4.6",
|
|
21
21
|
"@teambit/bit-error": "0.0.404",
|
|
22
|
-
"@teambit/envs": "1.0.
|
|
22
|
+
"@teambit/envs": "1.0.383",
|
|
23
23
|
"@teambit/toolbox.path.path": "0.0.2",
|
|
24
|
-
"@teambit/cli": "0.0.
|
|
24
|
+
"@teambit/cli": "0.0.960",
|
|
25
25
|
"@teambit/legacy.cli.prompts": "0.0.1",
|
|
26
|
-
"@teambit/logger": "0.0.
|
|
27
|
-
"@teambit/workspace": "1.0.
|
|
26
|
+
"@teambit/logger": "0.0.1053",
|
|
27
|
+
"@teambit/workspace": "1.0.383",
|
|
28
28
|
"@teambit/toolbox.crypto.sha1": "0.0.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@types/fs-extra": "9.0.7",
|
|
35
35
|
"@types/normalize-path": "^3.0.0",
|
|
36
36
|
"@types/mocha": "9.1.0",
|
|
37
|
-
"@teambit/harmony.envs.core-aspect-env": "0.0.
|
|
37
|
+
"@teambit/harmony.envs.core-aspect-env": "0.0.47"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@teambit/legacy": "1.0.624"
|
|
@@ -4,7 +4,7 @@ labels: ['core aspect', 'cli', 'configuration', 'workspace']
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
This aspect provides the ability to write configuration files in the workspace.
|
|
7
|
-
It provides an API to write configuration files in the workspace, and also provides
|
|
7
|
+
The main goal for these config file writers is to ensure that the LSP/IDE produces the same results as running the relevant commands (such as bit lint, bit format, or bit check types/TypeScript during build). It provides an API to write configuration files in the workspace, and also provides CLI commands to do so.
|
|
8
8
|
|
|
9
9
|
### Commands
|
|
10
10
|
|
|
@@ -14,3 +14,101 @@ Main command is `bit ws-config` which has the following sub commands:
|
|
|
14
14
|
- `bit ws-config clean` - remove all configuration files from the workspace
|
|
15
15
|
- `bit ws-config list` - list all registered configuration writers.
|
|
16
16
|
this is useful for filtering used configuration writers when using the `--writers` flag in the write/clean commands.
|
|
17
|
+
|
|
18
|
+
### How it works
|
|
19
|
+
|
|
20
|
+
**Background:**
|
|
21
|
+
|
|
22
|
+
Bit structures its workspaces in a manner that, while reminiscent of monorepos, introduces additional complexities:
|
|
23
|
+
|
|
24
|
+
1. **Component Isolation:** Each component behaves as an isolated package with its own `package.json` and configuration files (like `tsconfig`, `eslint`, `prettier`, `jest`, etc.). Some components might share configurations.
|
|
25
|
+
|
|
26
|
+
2. **Directory Structure Example:**
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
- Root
|
|
30
|
+
- node_modules
|
|
31
|
+
- React-env
|
|
32
|
+
- config1
|
|
33
|
+
- Node-env
|
|
34
|
+
- config2
|
|
35
|
+
- Lit-env
|
|
36
|
+
- config3
|
|
37
|
+
- Users-domain
|
|
38
|
+
- React-comp1
|
|
39
|
+
- React-comp2
|
|
40
|
+
- Node-comp1
|
|
41
|
+
- Ecommerce-domain
|
|
42
|
+
- React-comp3
|
|
43
|
+
- React-comp4
|
|
44
|
+
- Node-comp1
|
|
45
|
+
- Node-comp2
|
|
46
|
+
- Lit-comp1
|
|
47
|
+
- Lit-comp2
|
|
48
|
+
- Lit-comp3
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
- **Observations:**
|
|
52
|
+
- Sibling directories may require different configs at any hierarchy level.
|
|
53
|
+
- Components across different domains might share the same config.
|
|
54
|
+
- Actual config files reside within `node_modules` packages, not directly in the source folders.
|
|
55
|
+
|
|
56
|
+
**Flow:**
|
|
57
|
+
|
|
58
|
+
1. **Determining Config Associations:**
|
|
59
|
+
|
|
60
|
+
- **Step 1:** Identify the relevant config files for each component (e.g., for ESLint).
|
|
61
|
+
- **Step 2:** Group components sharing the same config.
|
|
62
|
+
- **Step 3:** Map the relevant paths for each config.
|
|
63
|
+
|
|
64
|
+
_Example Outcome:_
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"Config1": [
|
|
69
|
+
"users-domain/react-comp1",
|
|
70
|
+
"users-domain/react-comp2",
|
|
71
|
+
"ecommerce-domain/react-comp3",
|
|
72
|
+
"ecommerce-domain/react-comp4"
|
|
73
|
+
],
|
|
74
|
+
"Config2": ["..."],
|
|
75
|
+
"Config3": ["..."]
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
2. **Optimizing Config File Placement:**
|
|
80
|
+
|
|
81
|
+
- Develop an algorithm to determine optimal locations for generated config files, minimizing workspace pollution.
|
|
82
|
+
|
|
83
|
+
_Example Outcome:_
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"root": "generated-config1", // Predominantly React components
|
|
88
|
+
"users-domain": "generated-config2", // Exclusively Node components
|
|
89
|
+
"ecommerce-domain": "generated-config3",
|
|
90
|
+
"ecommerce-domain/node-comp1": "generated-config2",
|
|
91
|
+
"ecommerce-domain/node-comp2": "generated-config2"
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
3. **Filesystem Structure:**
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
- Root
|
|
99
|
+
- node_modules
|
|
100
|
+
- .config-files-dir
|
|
101
|
+
- Config1.<hash>.js
|
|
102
|
+
- Config2.<hash>.js
|
|
103
|
+
- Config3.<hash>.js
|
|
104
|
+
- generated-config1
|
|
105
|
+
- ...
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Each `generated-config` extends its respective config file:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"extends": ["./node_modules/.config-files-dir/.eslintrc.bit.<hash>.json"]
|
|
113
|
+
}
|
|
114
|
+
```
|
package/tsconfig.json
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"lib": [
|
|
4
|
-
"esnext",
|
|
5
|
-
"dom",
|
|
6
|
-
"dom.Iterable"
|
|
7
|
-
],
|
|
8
|
-
"target": "es2020",
|
|
9
|
-
"module": "es2020",
|
|
10
|
-
"jsx": "react-jsx",
|
|
11
|
-
"declaration": true,
|
|
12
|
-
"sourceMap": true,
|
|
13
|
-
"experimentalDecorators": true,
|
|
14
|
-
"skipLibCheck": true,
|
|
15
|
-
"moduleResolution": "node",
|
|
16
|
-
"esModuleInterop": true,
|
|
17
|
-
"resolveJsonModule": true,
|
|
18
|
-
"allowJs": true,
|
|
19
|
-
"outDir": "dist",
|
|
20
|
-
"emitDeclarationOnly": true,
|
|
21
|
-
"strict": true,
|
|
22
|
-
"strictPropertyInitialization": false,
|
|
23
|
-
"noImplicitAny": false
|
|
24
|
-
},
|
|
25
|
-
"exclude": [
|
|
26
|
-
"artifacts",
|
|
27
|
-
"public",
|
|
28
|
-
"dist",
|
|
29
|
-
"node_modules",
|
|
30
|
-
"package.json",
|
|
31
|
-
"esm.mjs",
|
|
32
|
-
"**/*.cjs",
|
|
33
|
-
"./dist"
|
|
34
|
-
],
|
|
35
|
-
"include": [
|
|
36
|
-
"**/*",
|
|
37
|
-
"**/*.json"
|
|
38
|
-
]
|
|
39
|
-
}
|