Skip to content

Commit

Permalink
allow cjs config files on type module projects (#8253)
Browse files Browse the repository at this point in the history
* allow cjs config files on type module projects

* Update packages/core/utils/src/config.js

Co-authored-by: Devon Govett <devongovett@gmail.com>

Co-authored-by: Devon Govett <devongovett@gmail.com>
  • Loading branch information
mrdaniellewis and devongovett committed Jul 31, 2022
1 parent a056f1e commit 085a7aa
Show file tree
Hide file tree
Showing 19 changed files with 120 additions and 16 deletions.
2 changes: 1 addition & 1 deletion packages/core/utils/src/config.js
Expand Up @@ -71,7 +71,7 @@ export async function loadConfig(

try {
let extname = path.extname(configFile).slice(1);
if (extname === 'js') {
if (extname === 'js' || extname === 'cjs') {
let output = {
// $FlowFixMe
config: clone(require(configFile)),
Expand Down
48 changes: 48 additions & 0 deletions packages/core/utils/test/config.test.js
Expand Up @@ -47,4 +47,52 @@ describe('loadConfig', () => {
{},
);
});

it('should load with js', async () => {
assert.deepEqual(
(
await loadConfig(
fs,
path.join(__dirname, './input/config/config.js'),
['config.js'],
path.join(__dirname, './input/config/'),
)
)?.config,
{
hoge: 'fuga',
},
);
});

it('should load with cjs', async () => {
assert.deepEqual(
(
await loadConfig(
fs,
path.join(__dirname, './input/config/config.cjs'),
['config.cjs'],
path.join(__dirname, './input/config/'),
)
)?.config,
{
hoge: 'fuga',
},
);
});

it('should load without an extension as json', async () => {
assert.deepEqual(
(
await loadConfig(
fs,
path.join(__dirname, './input/config/.testrc'),
['.testrc'],
path.join(__dirname, './input/config/'),
)
)?.config,
{
hoge: 'fuga',
},
);
});
});
3 changes: 3 additions & 0 deletions packages/core/utils/test/input/config/.testrc
@@ -0,0 +1,3 @@
{
"hoge": "fuga"
}
3 changes: 3 additions & 0 deletions packages/core/utils/test/input/config/config.cjs
@@ -0,0 +1,3 @@
module.exports = {
hoge: 'fuga',
};
3 changes: 3 additions & 0 deletions packages/core/utils/test/input/config/config.js
@@ -0,0 +1,3 @@
module.exports = {
hoge: 'fuga',
};
7 changes: 6 additions & 1 deletion packages/optimizers/css/src/CSSOptimizer.js
Expand Up @@ -16,7 +16,12 @@ import {md, generateJSONCodeHighlights} from '@parcel/diagnostic';
export default (new Optimizer({
async loadConfig({config, logger, options}) {
const configFile = await config.getConfig(
['.cssnanorc', 'cssnano.config.json', 'cssnano.config.js'],
[
'.cssnanorc',
'cssnano.config.json',
'cssnano.config.js',
'cssnano.config.cjs',
],
{
packageKey: 'cssnano',
},
Expand Down
7 changes: 6 additions & 1 deletion packages/optimizers/cssnano/src/CSSNanoOptimizer.js
Expand Up @@ -10,7 +10,12 @@ import path from 'path';
export default (new Optimizer({
async loadConfig({config}) {
const configFile = await config.getConfig(
['.cssnanorc', 'cssnano.config.json', 'cssnano.config.js'],
[
'.cssnanorc',
'cssnano.config.json',
'cssnano.config.js',
'cssnano.config.cjs',
],
{
packageKey: 'cssnano',
},
Expand Down
2 changes: 2 additions & 0 deletions packages/optimizers/htmlnano/src/HTMLNanoOptimizer.js
Expand Up @@ -15,7 +15,9 @@ export default (new Optimizer({
'.htmlnanorc',
'.htmlnanorc.json',
'.htmlnanorc.js',
'.htmlnanorc.cjs',
'htmlnano.config.js',
'htmlnano.config.cjs',
],
{
packageKey: 'htmlnano',
Expand Down
1 change: 1 addition & 0 deletions packages/optimizers/svgo/src/SVGOOptimizer.js
Expand Up @@ -11,6 +11,7 @@ export default (new Optimizer({
async loadConfig({config}) {
let configFile = await config.getConfig([
'svgo.config.js',
'svgo.config.cjs',
'svgo.config.json',
]);

Expand Down
2 changes: 1 addition & 1 deletion packages/optimizers/swc/src/SwcOptimizer.js
Expand Up @@ -12,7 +12,7 @@ export default (new Optimizer({
async loadConfig({config, options}) {
let userConfig = await config.getConfigFrom(
path.join(options.projectRoot, 'index'),
['.terserrc', '.terserrc.js'],
['.terserrc', '.terserrc.js', '.terserrc.cjs'],
);

if (userConfig) {
Expand Down
2 changes: 1 addition & 1 deletion packages/optimizers/terser/src/TerserOptimizer.js
Expand Up @@ -13,7 +13,7 @@ export default (new Optimizer({
async loadConfig({config, options}) {
let userConfig = await config.getConfigFrom(
path.join(options.projectRoot, 'index'),
['.terserrc', '.terserrc.js'],
['.terserrc', '.terserrc.js', '.terserrc.cjs'],
);

if (userConfig) {
Expand Down
8 changes: 7 additions & 1 deletion packages/packagers/html/src/HTMLPackager.js
Expand Up @@ -29,7 +29,13 @@ const metadataContent = new Set([
export default (new Packager({
async loadConfig({config}) {
let posthtmlConfig = await config.getConfig(
['.posthtmlrc', '.posthtmlrc.js', 'posthtml.config.js'],
[
'.posthtmlrc',
'.posthtmlrc.js',
'.posthtmlrc.cjs',
'posthtml.config.js',
'posthtml.config.cjs',
],
{
packageKey: 'posthtml',
},
Expand Down
9 changes: 6 additions & 3 deletions packages/transformers/less/src/loadConfig.js
Expand Up @@ -12,9 +12,12 @@ export async function load({
}: {|
config: Config,
|}): Promise<ConfigResult> {
let configFile = await config.getConfig(['.lessrc', '.lessrc.js'], {
packageKey: 'less',
});
let configFile = await config.getConfig(
['.lessrc', '.lessrc.js', '.lessrc.cjs'],
{
packageKey: 'less',
},
);

let configContents = {};
if (configFile != null) {
Expand Down
9 changes: 8 additions & 1 deletion packages/transformers/postcss/src/loadConfig.js
Expand Up @@ -160,7 +160,14 @@ export async function load({
}

let configFile: any = await config.getConfig(
['.postcssrc', '.postcssrc.json', '.postcssrc.js', 'postcss.config.js'],
[
'.postcssrc',
'.postcssrc.json',
'.postcssrc.js',
'.postcssrc.cjs',
'postcss.config.js',
'postcss.config.cjs',
],
{packageKey: 'postcss'},
);

Expand Down
8 changes: 7 additions & 1 deletion packages/transformers/posthtml/src/PostHTMLTransformer.js
Expand Up @@ -18,7 +18,13 @@ export default (new Transformer({
}

let configFile = await config.getConfig(
['.posthtmlrc', '.posthtmlrc.js', 'posthtml.config.js'],
[
'.posthtmlrc',
'.posthtmlrc.js',
'.posthtmlrc.cjs',
'posthtml.config.js',
'posthtml.config.cjs',
],
{
packageKey: 'posthtml',
},
Expand Down
2 changes: 2 additions & 0 deletions packages/transformers/pug/src/PugTransformer.js
Expand Up @@ -9,7 +9,9 @@ export default (new Transformer({
let configFile = await config.getConfig([
'.pugrc',
'.pugrc.js',
'.pugrc.cjs',
'pug.config.js',
'pug.config.cjs',
]);

if (configFile) {
Expand Down
2 changes: 1 addition & 1 deletion packages/transformers/sass/src/SassTransformer.js
Expand Up @@ -12,7 +12,7 @@ const NODE_MODULE_ALIAS_RE = /^~[^/\\]/;
export default (new Transformer({
async loadConfig({config, options}) {
let configFile = await config.getConfig(
['.sassrc', '.sassrc.json', '.sassrc.js'],
['.sassrc', '.sassrc.json', '.sassrc.js', '.sassrc.cjs'],
{
packageKey: 'sass',
},
Expand Down
9 changes: 6 additions & 3 deletions packages/transformers/stylus/src/StylusTransformer.js
Expand Up @@ -15,9 +15,12 @@ const URL_RE = /^(?:url\s*\(\s*)?['"]?(?:[#/]|(?:https?:)?\/\/)/i;

export default (new Transformer({
async loadConfig({config}) {
let configFile = await config.getConfig(['.stylusrc', '.stylusrc.js'], {
packageKey: 'stylus',
});
let configFile = await config.getConfig(
['.stylusrc', '.stylusrc.js', '.stylusrc.cjs'],
{
packageKey: 'stylus',
},
);

if (configFile) {
let isJavascript = path.extname(configFile.filePath) === '.js';
Expand Down
9 changes: 8 additions & 1 deletion packages/transformers/vue/src/VueTransformer.js
Expand Up @@ -23,7 +23,14 @@ const MODULE_BY_NAME_RE = /\.module\./;
export default (new Transformer({
async loadConfig({config}) {
let conf = await config.getConfig(
['.vuerc', '.vuerc.json', '.vuerc.js', 'vue.config.js'],
[
'.vuerc',
'.vuerc.json',
'.vuerc.js',
'.vuerc.cjs',
'vue.config.js',
'vue.config.cjs',
],
{packageKey: 'vue'},
);
let contents = {};
Expand Down

0 comments on commit 085a7aa

Please sign in to comment.