Skip to content

Commit

Permalink
fix: fixed issue with empty config files and webpack merge
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric Hayes committed Oct 5, 2020
1 parent 42fc6e2 commit eba227c
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 50 deletions.
12 changes: 7 additions & 5 deletions cli/commands/start.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ const webpackConfig = require('../../src/webpack/config/dev.config');
const getAvailablePortSeries = require('../../src/utilities/get-available-port-series');
const promptContinueIfPublishedTheme = require('../../src/server/prompts/continue-if-published-theme');
const promptSkipSettingsData = require('../../src/server/prompts/skip-settings-data');
const spinner = ora(chalk.magenta('Compiling...'));
const address = getIpAddress();

const {
getStoreValue,
getThemeIdValue,
Expand All @@ -21,6 +20,9 @@ const {
const PackerConfig = require('../../src/config');
const config = new PackerConfig(require('../../packer.schema'));

const address = getIpAddress();
const spinner = ora(chalk.magenta('Compiling...'));

let firstSync = true;
let skipSettingsData = null;
let continueIfPublishedTheme = null;
Expand Down Expand Up @@ -75,9 +77,9 @@ module.exports = () => {
};

function getIpAddress() {
if (config.get('network.ipAddress')) {
console.log(`Using forced IP Address ${config.get('network.ipAddress')}`);
return config.get('network.ipAddress');
if (config.get('network.ip')) {
console.log(`Using forced IP Address ${config.get('network.ip')}`);
return config.get('network.ip');
}
if (config.get('network.interface')) {
return ip.address(config.get('network.interface'));
Expand Down
2 changes: 1 addition & 1 deletion packer.schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const commonPaths = require('./src/config/common-paths');
module.exports = {
...commonPaths,
entrypoints: {},
'network.ipAddress': '',
'network.ip': '',
'network.external': '',
'network.interface': '',
};
37 changes: 19 additions & 18 deletions src/config/common-paths.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
const path = require('path');

module.exports = {
'root': process.cwd(),
'package': (config) => path.join(config.get('root'), 'package.json'),
'commonExcludes': [/node_modules/, /assets\/static/],
'cache': (config) => path.join(config.get('root'), '.cache'),
root: process.cwd(),
package: (config) => path.join(config.get('root'), 'package.json'),
commonExcludes: [/node_modules/, /assets\/static/],
cache: (config) => path.join(config.get('root'), '.cache'),
'packer.config': (config) =>
path.join(config.get('root'), 'packer.config.js'),
'packer.env': (config) => path.join(config.get('root'), 'packer.env.json'),

/* Webpack merge files - https://www.npmjs.com/package/webpack-merge */
'merge.dev': (config) => path.join(config.get('root'), 'dev.schema.js'),
'merge.prod': (config) => path.join(config.get('root'), 'prod.schema.js'),
'merge.dev': (config) => path.join(config.get('root'), 'dev.config.js'),
'merge.prod': (config) => path.join(config.get('root'), 'prod.config.js'),

/* PostCSS */
'postcss': (config) => path.join(config.get('root'), 'postcss.schema.js'),
postcss: (config) => path.join(config.get('root'), 'postcss.schema.js'),

/* Theme Lint */
'themelint.bin': () =>
Expand All @@ -33,7 +33,8 @@ module.exports = {
path.join(config.get('root'), '.prettierignore'),

/* Stylelint */
'stylelint.bin': path.resolve(__dirname, '../../node_modules/.bin/stylelint'),
'stylelint.bin': () =>
path.resolve(__dirname, '../../node_modules/.bin/stylelint'),
'stylelint.schema': (config) => path.join(config.get('root'), '.stylelintrc'),
'stylelint.ignore': (config) =>
path.join(config.get('root'), '.stylelintignore'),
Expand All @@ -60,28 +61,28 @@ module.exports = {
path.join(config.get('theme.src.root'), 'snippets'),
'theme.src.config': (config) =>
path.join(config.get('theme.src.root'), 'config'),
'theme.src.root': (config) => path.join(config.get('root'), './dist'),
'theme.src.root': (config) => path.join(config.get('root'), './src'),

/* dist folder */
'theme.dist.assets': (config) =>
path.join(config.get('theme.dist.root'), 'assets'),
'theme.dist.scripts': (config) =>
path.join(config.get('theme.src.root'), 'scripts'),
path.join(config.get('theme.dist.root'), 'scripts'),
'theme.dist.styles': (config) =>
path.join(config.get('theme.src.root'), 'styles'),
path.join(config.get('theme.dist.root'), 'styles'),
'theme.dist.layout': (config) =>
path.join(config.get('theme.src.root'), 'layout'),
path.join(config.get('theme.dist.root'), 'layout'),
'theme.dist.locales': (config) =>
path.join(config.get('theme.src.root'), 'locales'),
path.join(config.get('theme.dist.root'), 'locales'),
'theme.dist.templates': (config) =>
path.join(config.get('theme.src.root'), 'templates'),
path.join(config.get('theme.dist.root'), 'templates'),
'theme.dist.customers': (config) =>
path.join(config.get('theme.src.root'), 'templates/customers'),
path.join(config.get('theme.dist.root'), 'templates/customers'),
'theme.dist.sections': (config) =>
path.join(config.get('theme.src.root'), 'sections'),
path.join(config.get('theme.dist.root'), 'sections'),
'theme.dist.snippets': (config) =>
path.join(config.get('theme.src.root'), 'snippets'),
path.join(config.get('theme.dist.root'), 'snippets'),
'theme.dist.config': (config) =>
path.join(config.get('theme.src.config'), 'config'),
path.join(config.get('theme.dist.root'), 'config'),
'theme.dist.root': (config) => path.join(config.get('root'), './dist'),
};
4 changes: 2 additions & 2 deletions src/env/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ function getPasswordValue() {
}

function getThemeIdValue() {
const value = process.env[config.get('env.keys.themeId')];
const value = process.env[config.get('env.keys.id')];
return typeof value === 'undefined' ? '' : value;
}

function getIgnoreFilesValue() {
const value = process.env[config.get('env.keys.ignoreFiles')];
const value = process.env[config.get('env.keys.ignore')];
return typeof value === 'undefined' ? '' : value;
}

Expand Down
22 changes: 9 additions & 13 deletions src/webpack/config/dev.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,16 @@ const config = new PackerConfig(require('../../../packer.schema'));

const development = process.env.NODE_ENV !== 'production';
const HtmlWebpackIncludeLiquidStylesPlugin = require('../html-webpack-include-chunks');
const getLayoutEntrypoints = require('../../utilities/get-layout-entrypoints');
const getTemplateEntrypoints = require('../../utilities/get-template-entrypoints');

// Parts
const core = require('../parts/core');
const css = require('../parts/css');
const scss = require('../parts/scss');
const {customConfigCheck} = require('../custom');

let mergeDev;

if (fs.existsSync(paths.merge.dev)) {
mergeDev = require(paths.merge.dev);
console.log(
chalk.green(`Custom webpack configuration found ${paths.merge.dev}`)
);
}
const mergeDev = customConfigCheck(config.get('merge.dev'));

Object.keys(core.entry).forEach((name) => {
core.entry[name] = [path.join(__dirname, '../hot-client.js')].concat(
Expand Down Expand Up @@ -87,13 +83,13 @@ module.exports = merge([
// https://github.com/kangax/html-minifier#options-quick-reference
},
isDevServer: development,
liquidTemplates: paths.liquidTemplates,
liquidLayouts: paths.liquidLayouts,
liquidTemplates: getTemplateEntrypoints(),
liquidLayouts: getLayoutEntrypoints(),
}),

new HtmlWebpackPlugin({
excludeChunks: ['static'],
filename: `${paths.theme.dist.snippets}/style-tags.liquid`,
filename: `${config.get('theme.dist.snippets')}/style-tags.liquid`,
template: path.resolve(__dirname, '../style-tags.html'),
inject: false,
minify: {
Expand All @@ -103,8 +99,8 @@ module.exports = merge([
// https://github.com/kangax/html-minifier#options-quick-reference
},
isDevServer: development,
liquidTemplates: paths.liquidTemplates,
liquidLayouts: paths.liquidLayouts,
liquidTemplates: getTemplateEntrypoints(),
liquidLayouts: getLayoutEntrypoints(),
}),

new HtmlWebpackIncludeLiquidStylesPlugin(),
Expand Down
13 changes: 2 additions & 11 deletions src/webpack/config/prod.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,13 @@ const HtmlWebpackIncludeLiquidStylesPlugin = require('../html-webpack-include-ch
const getChunkName = require('../../utilities/get-chunk-name');
const getLayoutEntrypoints = require('../../utilities/get-layout-entrypoints');
const getTemplateEntrypoints = require('../../utilities/get-template-entrypoints');

const {customConfigCheck} = require('../custom');
// Parts
const core = require('../parts/core');
const css = require('../parts/css');
const scss = require('../parts/scss');

let mergeProd;

if (fs.existsSync(config.get('merge.prod'))) {
mergeProd = require(config.get('merge.prod'));
console.log(
chalk.green(
`Custom webpack configuration found ${config.get('merge.prod')}`
)
);
}
const mergeProd = customConfigCheck(config.get('merge.prod'));

const output = merge([
core,
Expand Down
19 changes: 19 additions & 0 deletions src/webpack/custom.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
const fs = require('fs');

const chalk = require('chalk');

const customConfigCheck = (customConfig) => {
if (fs.existsSync(customConfig)) {
console.log(
chalk.blue(`Custom webpack configuration found ${customConfig}`)
);
return require(customConfig);
} else {
console.log(
chalk.yellow(`No custom webpack configuration found ${customConfig}`)
);
return {};
}
};

module.exports = {customConfigCheck};

0 comments on commit eba227c

Please sign in to comment.