shakapacker 8.4.0 → 9.7.0

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.
Files changed (265) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/address-review.md +206 -0
  3. data/.claude/commands/update-changelog.md +354 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +6 -9
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +6 -8
  6. data/.github/STATUS.md +1 -0
  7. data/.github/actionlint-matcher.json +17 -0
  8. data/.github/workflows/claude-code-review.yml +45 -0
  9. data/.github/workflows/claude.yml +55 -0
  10. data/.github/workflows/dummy.yml +18 -5
  11. data/.github/workflows/eslint-validation.yml +46 -0
  12. data/.github/workflows/generator.yml +38 -22
  13. data/.github/workflows/node.yml +116 -2
  14. data/.github/workflows/ruby.yml +57 -15
  15. data/.github/workflows/test-bundlers.yml +180 -0
  16. data/.gitignore +27 -0
  17. data/.husky/pre-commit +2 -0
  18. data/.npmignore +56 -0
  19. data/.prettierignore +7 -0
  20. data/.rubocop.yml +2 -0
  21. data/.yalcignore +26 -0
  22. data/CHANGELOG.md +487 -19
  23. data/CLAUDE.md +63 -0
  24. data/CONTRIBUTING.md +268 -21
  25. data/ESLINT_TECHNICAL_DEBT.md +165 -0
  26. data/README.md +497 -137
  27. data/Rakefile +44 -4
  28. data/TODO.md +58 -0
  29. data/TODO_v9.md +97 -0
  30. data/bin/conductor-exec +24 -0
  31. data/bin/shakapacker-config +11 -0
  32. data/conductor-setup.sh +147 -0
  33. data/conductor.json +9 -0
  34. data/docs/api-reference.md +519 -0
  35. data/docs/cdn_setup.md +384 -0
  36. data/docs/common-upgrades.md +695 -0
  37. data/docs/configuration.md +845 -0
  38. data/docs/css-modules-export-mode.md +566 -0
  39. data/docs/customizing_babel_config.md +16 -16
  40. data/docs/deployment.md +78 -7
  41. data/docs/developing_shakapacker.md +6 -0
  42. data/docs/early_hints.md +433 -0
  43. data/docs/early_hints_manual_api.md +454 -0
  44. data/docs/feature_testing.md +492 -0
  45. data/docs/node_package_api.md +70 -0
  46. data/docs/optional-peer-dependencies.md +203 -0
  47. data/docs/peer-dependencies.md +71 -0
  48. data/docs/precompile_hook.md +486 -0
  49. data/docs/preventing_fouc.md +132 -0
  50. data/docs/react.md +58 -48
  51. data/docs/releasing.md +288 -0
  52. data/docs/rspack.md +218 -0
  53. data/docs/rspack_migration_guide.md +862 -0
  54. data/docs/sprockets.md +1 -0
  55. data/docs/style_loader_vs_mini_css.md +12 -12
  56. data/docs/subresource_integrity.md +13 -7
  57. data/docs/transpiler-migration.md +212 -0
  58. data/docs/transpiler-performance.md +200 -0
  59. data/docs/troubleshooting.md +272 -24
  60. data/docs/typescript-migration.md +388 -0
  61. data/docs/typescript.md +103 -0
  62. data/docs/using_esbuild_loader.md +12 -12
  63. data/docs/using_swc_loader.md +121 -16
  64. data/docs/v6_upgrade.md +42 -19
  65. data/docs/v7_upgrade.md +8 -6
  66. data/docs/v8_upgrade.md +13 -12
  67. data/docs/v9_upgrade.md +616 -0
  68. data/eslint.config.fast.js +254 -0
  69. data/eslint.config.js +309 -0
  70. data/jest.config.js +8 -1
  71. data/knip.ts +61 -0
  72. data/lib/install/bin/shakapacker +4 -6
  73. data/lib/install/bin/shakapacker-config +11 -0
  74. data/lib/install/bin/shakapacker-dev-server +1 -1
  75. data/lib/install/binstubs.rb +6 -2
  76. data/lib/install/config/rspack/rspack.config.js +6 -0
  77. data/lib/install/config/rspack/rspack.config.ts +7 -0
  78. data/lib/install/config/shakapacker.yml +75 -12
  79. data/lib/install/config/webpack/webpack.config.ts +7 -0
  80. data/lib/install/package.json +38 -0
  81. data/lib/install/template.rb +207 -45
  82. data/lib/shakapacker/build_config_loader.rb +147 -0
  83. data/lib/shakapacker/bundler_switcher.rb +415 -0
  84. data/lib/shakapacker/compiler.rb +87 -0
  85. data/lib/shakapacker/configuration.rb +475 -6
  86. data/lib/shakapacker/dev_server.rb +88 -1
  87. data/lib/shakapacker/dev_server_runner.rb +240 -6
  88. data/lib/shakapacker/doctor.rb +1191 -0
  89. data/lib/shakapacker/env.rb +19 -3
  90. data/lib/shakapacker/helper.rb +411 -14
  91. data/lib/shakapacker/install/env.rb +33 -0
  92. data/lib/shakapacker/instance.rb +93 -4
  93. data/lib/shakapacker/manifest.rb +167 -30
  94. data/lib/shakapacker/railtie.rb +4 -0
  95. data/lib/shakapacker/rspack_runner.rb +19 -0
  96. data/lib/shakapacker/runner.rb +668 -9
  97. data/lib/shakapacker/swc_migrator.rb +384 -0
  98. data/lib/shakapacker/utils/manager.rb +2 -0
  99. data/lib/shakapacker/utils/version_syntax_converter.rb +1 -1
  100. data/lib/shakapacker/version.rb +1 -1
  101. data/lib/shakapacker/version_checker.rb +1 -1
  102. data/lib/shakapacker/webpack_runner.rb +4 -42
  103. data/lib/shakapacker.rb +159 -1
  104. data/lib/tasks/shakapacker/binstubs.rake +4 -2
  105. data/lib/tasks/shakapacker/check_binstubs.rake +2 -2
  106. data/lib/tasks/shakapacker/doctor.rake +48 -0
  107. data/lib/tasks/shakapacker/export_bundler_config.rake +68 -0
  108. data/lib/tasks/shakapacker/install.rake +16 -4
  109. data/lib/tasks/shakapacker/migrate_to_swc.rake +13 -0
  110. data/lib/tasks/shakapacker/switch_bundler.rake +72 -0
  111. data/lib/tasks/shakapacker.rake +2 -0
  112. data/package/.npmignore +4 -0
  113. data/package/babel/preset.ts +59 -0
  114. data/package/config.ts +189 -0
  115. data/package/configExporter/buildValidator.ts +906 -0
  116. data/package/configExporter/cli.ts +1748 -0
  117. data/package/configExporter/configDocs.ts +102 -0
  118. data/package/configExporter/configFile.ts +663 -0
  119. data/package/configExporter/fileWriter.ts +112 -0
  120. data/package/configExporter/index.ts +15 -0
  121. data/package/configExporter/types.ts +159 -0
  122. data/package/configExporter/yamlSerializer.ts +391 -0
  123. data/package/dev_server.ts +27 -0
  124. data/package/env.ts +92 -0
  125. data/package/environments/__type-tests__/rspack-plugin-compatibility.ts +36 -0
  126. data/package/environments/base.ts +147 -0
  127. data/package/environments/development.ts +88 -0
  128. data/package/environments/production.ts +82 -0
  129. data/package/environments/test.ts +55 -0
  130. data/package/environments/types.ts +98 -0
  131. data/package/esbuild/index.ts +40 -0
  132. data/package/index.d.ts +68 -93
  133. data/package/index.d.ts.template +72 -0
  134. data/package/index.ts +104 -0
  135. data/package/loaders.d.ts +28 -0
  136. data/package/optimization/rspack.ts +36 -0
  137. data/package/optimization/webpack.ts +55 -0
  138. data/package/plugins/envFilter.ts +82 -0
  139. data/package/plugins/rspack.ts +119 -0
  140. data/package/plugins/webpack.ts +82 -0
  141. data/package/rspack/index.ts +91 -0
  142. data/package/rules/{babel.js → babel.ts} +2 -2
  143. data/package/rules/{coffee.js → coffee.ts} +1 -1
  144. data/package/rules/css.ts +3 -0
  145. data/package/rules/{erb.js → erb.ts} +1 -1
  146. data/package/rules/esbuild.ts +10 -0
  147. data/package/rules/file.ts +41 -0
  148. data/package/rules/{jscommon.js → jscommon.ts} +5 -4
  149. data/package/rules/{less.js → less.ts} +4 -4
  150. data/package/rules/raw.ts +28 -0
  151. data/package/rules/rspack.ts +174 -0
  152. data/package/rules/sass.ts +21 -0
  153. data/package/rules/{stylus.js → stylus.ts} +4 -8
  154. data/package/rules/swc.ts +10 -0
  155. data/package/rules/{index.js → webpack.ts} +1 -2
  156. data/package/swc/index.ts +54 -0
  157. data/package/types/README.md +90 -0
  158. data/package/types/index.ts +69 -0
  159. data/package/types.ts +105 -0
  160. data/package/utils/bundlerUtils.ts +232 -0
  161. data/package/utils/configPath.ts +6 -0
  162. data/package/utils/debug.ts +45 -0
  163. data/package/utils/defaultConfigPath.ts +7 -0
  164. data/package/utils/ensureManifestExists.ts +17 -0
  165. data/package/utils/errorCodes.ts +249 -0
  166. data/package/utils/errorHelpers.ts +152 -0
  167. data/package/utils/getStyleRule.ts +75 -0
  168. data/package/utils/helpers.ts +99 -0
  169. data/package/utils/{inliningCss.js → inliningCss.ts} +3 -3
  170. data/package/utils/pathValidation.ts +207 -0
  171. data/package/utils/requireOrError.ts +24 -0
  172. data/package/utils/snakeToCamelCase.ts +5 -0
  173. data/package/utils/typeGuards.ts +388 -0
  174. data/package/utils/validateDependencies.ts +61 -0
  175. data/package/webpack-types.d.ts +33 -0
  176. data/package/webpackDevServerConfig.ts +130 -0
  177. data/package.json +157 -18
  178. data/scripts/remove-use-strict.js +44 -0
  179. data/scripts/type-check-no-emit.js +27 -0
  180. data/shakapacker.gemspec +4 -2
  181. data/sig/shakapacker/commands.rbs +35 -0
  182. data/sig/shakapacker/compiler.rbs +65 -0
  183. data/sig/shakapacker/compiler_strategy.rbs +41 -0
  184. data/sig/shakapacker/configuration.rbs +140 -0
  185. data/sig/shakapacker/dev_server.rbs +56 -0
  186. data/sig/shakapacker/env.rbs +25 -0
  187. data/sig/shakapacker/helper.rbs +98 -0
  188. data/sig/shakapacker/instance.rbs +46 -0
  189. data/sig/shakapacker/manifest.rbs +69 -0
  190. data/sig/shakapacker/version.rbs +4 -0
  191. data/sig/shakapacker.rbs +66 -0
  192. data/test/configExporter/buildValidator.test.js +1295 -0
  193. data/test/configExporter/configFile.test.js +393 -0
  194. data/test/configExporter/integration.test.js +262 -0
  195. data/test/helpers.js +1 -1
  196. data/test/package/bundlerUtils.rspack.test.js +145 -0
  197. data/test/package/bundlerUtils.test.js +97 -0
  198. data/test/package/config.test.js +14 -0
  199. data/test/package/configExporter/cli.test.js +440 -0
  200. data/test/package/configExporter/types.test.js +163 -0
  201. data/test/package/configExporter.test.js +491 -0
  202. data/test/package/env.test.js +42 -7
  203. data/test/package/environments/base.test.js +14 -4
  204. data/test/package/helpers.test.js +2 -2
  205. data/test/package/plugins/envFiltering.test.js +453 -0
  206. data/test/package/plugins/webpackSubresourceIntegrity.test.js +89 -0
  207. data/test/package/rspack/index.test.js +293 -0
  208. data/test/package/rspack/optimization.test.js +86 -0
  209. data/test/package/rspack/plugins.test.js +185 -0
  210. data/test/package/rspack/rules.test.js +229 -0
  211. data/test/package/rules/babel.test.js +65 -38
  212. data/test/package/rules/esbuild.test.js +13 -4
  213. data/test/package/rules/file.test.js +7 -1
  214. data/test/package/rules/raw.test.js +40 -7
  215. data/test/package/rules/sass-version-parsing.test.js +71 -0
  216. data/test/package/rules/sass.test.js +11 -6
  217. data/test/package/rules/sass1.test.js +8 -5
  218. data/test/package/rules/sass16.test.js +24 -0
  219. data/test/package/rules/swc.test.js +50 -39
  220. data/test/package/rules/webpack.test.js +35 -0
  221. data/test/package/staging.test.js +4 -3
  222. data/test/package/transpiler-defaults.test.js +169 -0
  223. data/test/package/utils/ensureManifestExists.test.js +51 -0
  224. data/test/package/yamlSerializer.test.js +204 -0
  225. data/test/peer-dependencies.sh +85 -0
  226. data/test/resolver.js +34 -3
  227. data/test/scripts/remove-use-strict.test.js +125 -0
  228. data/test/typescript/build.test.js +118 -0
  229. data/test/typescript/environments.test.js +107 -0
  230. data/test/typescript/pathValidation.test.js +186 -0
  231. data/test/typescript/requireOrError.test.js +49 -0
  232. data/test/typescript/securityValidation.test.js +182 -0
  233. data/tools/README.md +134 -0
  234. data/tools/css-modules-v9-codemod.js +179 -0
  235. data/tsconfig.eslint.json +9 -0
  236. data/tsconfig.json +38 -0
  237. data/yarn.lock +3202 -1097
  238. metadata +212 -44
  239. data/.eslintignore +0 -4
  240. data/.eslintrc.js +0 -36
  241. data/Gemfile.lock +0 -251
  242. data/package/babel/preset.js +0 -48
  243. data/package/config.js +0 -56
  244. data/package/dev_server.js +0 -23
  245. data/package/env.js +0 -48
  246. data/package/environments/base.js +0 -171
  247. data/package/environments/development.js +0 -13
  248. data/package/environments/production.js +0 -88
  249. data/package/environments/test.js +0 -3
  250. data/package/esbuild/index.js +0 -40
  251. data/package/index.js +0 -40
  252. data/package/rules/css.js +0 -3
  253. data/package/rules/esbuild.js +0 -10
  254. data/package/rules/file.js +0 -29
  255. data/package/rules/raw.js +0 -5
  256. data/package/rules/sass.js +0 -18
  257. data/package/rules/swc.js +0 -10
  258. data/package/swc/index.js +0 -50
  259. data/package/utils/configPath.js +0 -4
  260. data/package/utils/defaultConfigPath.js +0 -2
  261. data/package/utils/getStyleRule.js +0 -40
  262. data/package/utils/helpers.js +0 -62
  263. data/package/utils/snakeToCamelCase.js +0 -5
  264. data/package/webpackDevServerConfig.js +0 -71
  265. data/test/package/rules/index.test.js +0 -16
@@ -0,0 +1,180 @@
1
+ name: Test Both Bundlers
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - "spec/dummy/**"
7
+ - "lib/**"
8
+ - "**.rb"
9
+ - "**.js"
10
+ - "**.ts"
11
+ - "package.json"
12
+ - "yarn.lock"
13
+ - ".github/workflows/test-bundlers.yml"
14
+ push:
15
+ branches: [master, main]
16
+ workflow_dispatch:
17
+
18
+ jobs:
19
+ test-webpack:
20
+ name: Test with Webpack
21
+ runs-on: ubuntu-latest
22
+ defaults:
23
+ run:
24
+ working-directory: spec/dummy
25
+
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+
29
+ - name: Setup Ruby
30
+ uses: ruby/setup-ruby@v1
31
+ with:
32
+ ruby-version: "3.2"
33
+ bundler-cache: true
34
+ working-directory: spec/dummy
35
+
36
+ - name: Setup Node
37
+ uses: actions/setup-node@v4
38
+ with:
39
+ node-version: "20"
40
+ cache: "yarn"
41
+ cache-dependency-path: spec/dummy/yarn.lock
42
+
43
+ - name: Install yalc
44
+ run: npm install -g yalc
45
+
46
+ - name: Build TypeScript
47
+ run: |
48
+ cd ../..
49
+ yarn install --frozen-lockfile --production=false
50
+ yarn build
51
+
52
+ - name: Publish shakapacker to yalc
53
+ run: |
54
+ cd ../..
55
+ yalc publish
56
+
57
+ - name: Install dependencies
58
+ run: |
59
+ yalc link shakapacker
60
+ yarn install
61
+
62
+ - name: Switch to Webpack
63
+ run: bin/test-bundler webpack
64
+
65
+ - name: Build with Webpack
66
+ run: bin/shakapacker
67
+
68
+ - name: Run tests with Webpack
69
+ run: |
70
+ bundle exec rspec
71
+
72
+ test-rspack:
73
+ name: Test with RSpack
74
+ runs-on: ubuntu-latest
75
+ defaults:
76
+ run:
77
+ working-directory: spec/dummy
78
+
79
+ steps:
80
+ - uses: actions/checkout@v4
81
+
82
+ - name: Setup Ruby
83
+ uses: ruby/setup-ruby@v1
84
+ with:
85
+ ruby-version: "3.2"
86
+ bundler-cache: true
87
+ working-directory: spec/dummy
88
+
89
+ - name: Setup Node
90
+ uses: actions/setup-node@v4
91
+ with:
92
+ node-version: "20"
93
+ cache: "yarn"
94
+ cache-dependency-path: spec/dummy/yarn.lock
95
+
96
+ - name: Install yalc
97
+ run: npm install -g yalc
98
+
99
+ - name: Build TypeScript
100
+ run: |
101
+ cd ../..
102
+ yarn install --frozen-lockfile --production=false
103
+ yarn build
104
+
105
+ - name: Publish shakapacker to yalc
106
+ run: |
107
+ cd ../..
108
+ yalc publish
109
+
110
+ - name: Install dependencies
111
+ run: |
112
+ yalc link shakapacker
113
+ yarn install
114
+
115
+ - name: Switch to RSpack
116
+ run: bin/test-bundler rspack
117
+
118
+ - name: Build with RSpack
119
+ run: bin/shakapacker
120
+
121
+ - name: Run tests with RSpack
122
+ run: |
123
+ bundle exec rspec
124
+
125
+ test-switching:
126
+ name: Test Bundler Switching
127
+ runs-on: ubuntu-latest
128
+ defaults:
129
+ run:
130
+ working-directory: spec/dummy
131
+
132
+ steps:
133
+ - uses: actions/checkout@v4
134
+
135
+ - name: Setup Ruby
136
+ uses: ruby/setup-ruby@v1
137
+ with:
138
+ ruby-version: "3.2"
139
+ bundler-cache: true
140
+ working-directory: spec/dummy
141
+
142
+ - name: Setup Node
143
+ uses: actions/setup-node@v4
144
+ with:
145
+ node-version: "20"
146
+ cache: "yarn"
147
+ cache-dependency-path: spec/dummy/yarn.lock
148
+
149
+ - name: Install yalc
150
+ run: npm install -g yalc
151
+
152
+ - name: Build TypeScript
153
+ run: |
154
+ cd ../..
155
+ yarn install --frozen-lockfile --production=false
156
+ yarn build
157
+
158
+ - name: Publish shakapacker to yalc
159
+ run: |
160
+ cd ../..
161
+ yalc publish
162
+
163
+ - name: Install dependencies
164
+ run: |
165
+ yalc link shakapacker
166
+ yarn install
167
+
168
+ - name: Test switching between bundlers
169
+ run: |
170
+ # Start with webpack
171
+ bin/test-bundler webpack
172
+ bin/shakapacker
173
+
174
+ # Switch to rspack
175
+ bin/test-bundler rspack
176
+ bin/shakapacker
177
+
178
+ # Switch back to webpack
179
+ bin/test-bundler webpack
180
+ bin/shakapacker
data/.gitignore CHANGED
@@ -5,12 +5,39 @@
5
5
  node_modules
6
6
  .byebug_history
7
7
  /spec/test_app/tmp
8
+ /test/tmp
8
9
  yarn-debug.log*
9
10
  yarn-error.log*
10
11
  .yarn-integrity
11
12
  /log
12
13
  gemfiles/*.lock
13
14
  .DS_Store
15
+ .eslintcache
14
16
 
15
17
  .yalc
16
18
  yalc.lock
19
+
20
+ # npm pack tarballs
21
+ *.tgz
22
+
23
+ # Built gem files
24
+ *.gem
25
+
26
+ # Config exporter output directory
27
+ shakapacker-config-exports/
28
+
29
+ # TypeScript generated files
30
+ package/**/*.d.ts
31
+ package/**/*.d.ts.map
32
+ package/**/*.js.map
33
+ # Ignore compiled JS files from TypeScript sources
34
+ package/**/*.js
35
+ # Keep specific files that are not TypeScript-generated
36
+ !package/index.d.ts
37
+ !package/loaders.d.ts
38
+ !package/webpack-types.d.ts
39
+ !package/babel/preset-react.js
40
+ !package/loaders/*.js
41
+ !package/__mocks__/*.js
42
+ !package/utils/get_style_rule.js
43
+ !package/utils/node_modules.js
data/.husky/pre-commit ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env sh
2
+ npx lint-staged
data/.npmignore ADDED
@@ -0,0 +1,56 @@
1
+ # .npmignore
2
+ # This file controls what gets published to npm
3
+ # It overrides .gitignore for npm publishing
4
+
5
+ # Exclude development and test files
6
+ /.bundle
7
+ /pkg
8
+ /spec
9
+ /test
10
+ /gemfiles
11
+ /.github
12
+ /.circleci
13
+ /.husky
14
+ /.byebug_history
15
+ .DS_Store
16
+ yarn-debug.log*
17
+ yarn-error.log*
18
+ .yarn-integrity
19
+ .yalc
20
+ yalc.lock
21
+ .yalcignore
22
+
23
+ # Exclude Ruby files not needed for npm package
24
+ Gemfile
25
+ Gemfile.lock
26
+ Rakefile
27
+ *.gemspec
28
+ .rubocop.yml
29
+ .ruby-version
30
+
31
+ # Exclude TypeScript config
32
+ tsconfig.json
33
+
34
+ # Exclude source maps (optional - remove these lines to include source maps)
35
+ *.js.map
36
+ *.d.ts.map
37
+
38
+ # Exclude git and editor files
39
+ .git
40
+ .gitignore
41
+ .gitattributes
42
+ .editorconfig
43
+ .vscode
44
+ .idea
45
+
46
+ # Exclude CI/CD files
47
+ .travis.yml
48
+ appveyor.yml
49
+
50
+ # Exclude documentation source files (keep compiled docs if any)
51
+ docs/
52
+
53
+ # CRITICAL: Exclude TypeScript source files (must be at the end)
54
+ # Only include compiled .js and .d.ts files
55
+ *.ts
56
+ !*.d.ts
data/.prettierignore ADDED
@@ -0,0 +1,7 @@
1
+ # Template files that should maintain their original quote style
2
+ lib/install/config/**/*.ts
3
+ lib/install/config/**/*.js
4
+
5
+ # Temporarily ignore workflow files that cannot be modified in PRs due to claude-review validation
6
+ .github/workflows/claude.yml
7
+ .github/workflows/claude-code-review.yml
data/.rubocop.yml CHANGED
@@ -9,6 +9,8 @@ AllCops:
9
9
  - "vendor/**/*"
10
10
  - "node_modules/**/*"
11
11
  - "_actions/**/*"
12
+ - "spec/dummy-rspack/**/*"
13
+ - "bin/conductor-exec" # Shell script, not Ruby
12
14
 
13
15
  # Prefer &&/|| over and/or.
14
16
  Style/AndOr:
data/.yalcignore ADDED
@@ -0,0 +1,26 @@
1
+ # Yalc-specific ignore file
2
+ # Unlike .gitignore, we want to include generated JS files for yalc publish
3
+
4
+ # Ignore source TypeScript files since we're publishing compiled JS
5
+ package/**/*.ts
6
+ !package/**/*.d.ts
7
+
8
+ # Ignore map files
9
+ package/**/*.js.map
10
+ package/**/*.d.ts.map
11
+
12
+ # Ignore test files
13
+ **/*.test.js
14
+ **/*.spec.js
15
+ **/__tests__
16
+ **/__mocks__
17
+
18
+ # Ignore config and build files
19
+ .github
20
+ .vscode
21
+ .idea
22
+ *.log
23
+ node_modules
24
+ tmp
25
+ coverage
26
+ .DS_Store