Skip to content

Commit c0ee520

Browse files
sachinrajafedeci
andauthored
Generate plugin list file (#4725)
* Generate plugin list file Removes the importing of all plugins in src/util/resolveConfig to avoid importing CSS. Import the built plugin list file instead. * Use `process.cwd()` instead of `__dirname` to resolve path Co-authored-by: Federico Ciardi <[email protected]> * Import core plugin list in resolveConfig test * Generate plugin list prebabelify and on install * Move generation from install to postinstall Co-authored-by: Federico Ciardi <[email protected]> Co-authored-by: Federico Ciardi <[email protected]>
1 parent 973d53d commit c0ee520

7 files changed

+44
-19
lines changed

.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
/peers
55
/tests/fixtures/cli-utils.js
66
/stubs/*
7+
/src/corePluginList.js

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@ yarn-error.log
1515

1616
# Perf related files
1717
isolate*.log
18+
19+
# Generated files
20+
/src/corePluginList.js

package-lock.json

+23-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,20 @@
1818
"David Hemphill <[email protected]>"
1919
],
2020
"scripts": {
21-
"prebabelify": "rimraf lib",
21+
"prebabelify": "npm run generate:plugin-list && rimraf lib",
2222
"babelify": "babel src --out-dir lib --copy-files",
2323
"postbabelify": "ncc build lib/cli-peer-dependencies.js -o peers",
2424
"rebuild-fixtures": "npm run babelify && babel-node scripts/rebuildFixtures.js",
2525
"prepublishOnly": "npm install --force && npm run babelify && babel-node scripts/build.js && node scripts/build-plugins.js",
2626
"style": "eslint .",
2727
"test": "cross-env TAILWIND_MODE=build jest",
2828
"test:integrations": "npm run test --prefix ./integrations",
29+
"postinstall": "npm run generate:plugin-list",
2930
"install:integrations": "node scripts/install-integrations.js",
3031
"posttest": "npm run style",
3132
"compat": "node scripts/compat.js --prepare",
32-
"compat:restore": "node scripts/compat.js --restore"
33+
"compat:restore": "node scripts/compat.js --restore",
34+
"generate:plugin-list": "babel-node scripts/create-plugin-list.js"
3335
},
3436
"files": [
3537
"dist/*.css",

scripts/create-plugin-list.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import * as corePlugins from '../src/plugins'
2+
import fs from 'fs'
3+
import path from 'path'
4+
5+
const corePluginList = Object.keys(corePlugins)
6+
7+
fs.writeFileSync(
8+
path.join(process.cwd(), 'src', 'corePluginList.js'),
9+
`export default ${JSON.stringify(corePluginList)}`
10+
)

src/util/resolveConfig.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import toPath from 'lodash/toPath'
1010
import head from 'lodash/head'
1111
import isPlainObject from 'lodash/isPlainObject'
1212
import negateValue from './negateValue'
13-
import * as corePlugins from '../plugins'
13+
import corePluginList from '../corePluginList'
1414
import configurePlugins from './configurePlugins'
1515
import defaultConfig from '../../stubs/defaultConfig.stub'
1616
import colors from '../../colors'
@@ -243,7 +243,7 @@ function resolveCorePlugins(corePluginConfigs) {
243243
return corePluginConfig({ corePlugins: resolved })
244244
}
245245
return configurePlugins(corePluginConfig, resolved)
246-
}, Object.keys(corePlugins))
246+
}, corePluginList)
247247

248248
return result
249249
}

tests/resolveConfig.test.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
import * as corePlugins from '../src/plugins'
21
import resolveConfig from '../src/util/resolveConfig'
3-
4-
const corePluginList = Object.keys(corePlugins)
2+
import corePluginList from '../src/corePluginList'
53

64
test('prefix key overrides default prefix', () => {
75
const userConfig = {

0 commit comments

Comments
 (0)