Update dependencies

Replace pre-commit hook with Husky and lint-staged
This commit is contained in:
2019-03-03 23:26:24 +00:00
parent a81cb7cce8
commit 2598314c2b
4 changed files with 3001 additions and 5637 deletions

View File

@@ -15,18 +15,20 @@ imagemin(['images/*.{png,jpg,gif}'], 'theme/images', {
}), }),
imageminJpegtran(), imageminJpegtran(),
], ],
}).then((files) => { })
files.forEach((file) => { .then((files) => {
const path = resolve(__dirname, '../', file.path); files.forEach((file) => {
writeFile(path, file.data, (error) => { const path = resolve(__dirname, '../', file.path);
if (error) { writeFile(path, file.data, (error) => {
console.error(error); if (error) {
process.exit(1); process.stdout.write(`${error}\n`);
} process.exit(1);
console.log(`File written: ${path}`); }
process.stdout.write(`File written: ${path}\n`);
});
}); });
})
.catch((error) => {
process.stdout.write(`${error}\n`);
process.exit(1);
}); });
}).catch((error) => {
console.error(error);
process.exit(1);
});

View File

@@ -1,6 +1,6 @@
const { resolve } = require('path'); const { resolve } = require('path');
const { execSync } = require('child_process'); const { execSync } = require('child_process');
const { exec, upAll, stop } = require('docker-compose'); const { upAll, stop } = require('docker-compose');
const browsersync = require('browser-sync'); const browsersync = require('browser-sync');
const mysql = require('mysql'); const mysql = require('mysql');
@@ -12,9 +12,7 @@ const dockerOptions = {
}; };
const browserSyncOptions = { const browserSyncOptions = {
files: [ files: ['theme/**/*'],
'theme/**/*',
],
watchtask: true, watchtask: true,
open: false, open: false,
}; };
@@ -29,7 +27,11 @@ process.env.COMPOSE_PROJECT_NAME = name;
// Get IP address // Get IP address
const getIpAddr = function getIpAddr(id) { const getIpAddr = function getIpAddr(id) {
return execSync(`docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${id}`).toString('utf8').trim(); return execSync(
`docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${id}`,
)
.toString('utf8')
.trim();
}; };
// Update URIs in MYSQL database // Update URIs in MYSQL database
@@ -42,7 +44,7 @@ const updateUriData = function updateUriData(wordpress, db) {
con.query(query, (error) => { con.query(query, (error) => {
if (error) { if (error) {
console.error('Error', error.sqlMessage); process.stderr.write(`Error: ${error.sqlMessage}\n`);
process.exit(1); process.exit(1);
} }
}); });
@@ -54,11 +56,11 @@ const updateUriData = function updateUriData(wordpress, db) {
const exitHandler = function exitHandler() { const exitHandler = function exitHandler() {
stop(dockerOptions).then( stop(dockerOptions).then(
() => { () => {
console.log('\n'); process.stdout.write('\n');
process.exit(); process.exit();
}, },
(err) => { (err) => {
console.error('Error:', err.message); process.stderr.write(`Error: ${err.message}\n`);
process.exit(1); process.exit(1);
}, },
); );
@@ -73,7 +75,9 @@ process.on('uncaughtException', exitHandler.bind());
// Start Docker containers // Start Docker containers
upAll(dockerOptions).then( upAll(dockerOptions).then(
() => { () => {
console.log('Docker containers launched, starting browser-sync...'); process.stdout.write(
'Docker containers launched, starting browser-sync...',
);
const wordpress = getIpAddr(`${name}_wordpress_1`); const wordpress = getIpAddr(`${name}_wordpress_1`);
const db = getIpAddr(`${name}_db_1`); const db = getIpAddr(`${name}_db_1`);
if (wordpress && db) { if (wordpress && db) {
@@ -82,12 +86,14 @@ upAll(dockerOptions).then(
browserSyncOptions.proxy = wordpress; browserSyncOptions.proxy = wordpress;
bs.init(browserSyncOptions); bs.init(browserSyncOptions);
} else { } else {
console.error('Error', 'No IP address for Docker containers. Aborting.'); process.stderr.write(
'Error: No IP address for Docker containers. Aborting.\n',
);
process.exit(1); process.exit(1);
} }
}, },
(err) => { (err) => {
console.error('Error', err.message); console.error(`Error: ${err.message}\n`);
process.exit(1); process.exit(1);
}, },
); );

8512
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -12,13 +12,13 @@
"build": "run-s images css:compile js:compile", "build": "run-s images css:compile js:compile",
"css": "run-p -c css:*", "css": "run-p -c css:*",
"css:compile": "postcss -o theme/style.css css/index.css", "css:compile": "postcss -o theme/style.css css/index.css",
"css:lint": "stylelint --config .stylelintrc \"css/**/*.css\"", "css:lint": "stylelint css/*.css",
"images": "node build/imagemin.js", "images": "node build/imagemin.js",
"jest": "jest", "jest": "jest",
"jest:watch": "jest --watch", "jest:watch": "jest --watch",
"js": "run-s js:*", "js": "run-s js:*",
"js:compile": "rollup --config rollup.config.js", "js:compile": "rollup --config rollup.config.js",
"js:lint": "eslint js/", "js:lint": "eslint build js",
"serve": "node build/serve.js", "serve": "node build/serve.js",
"start": "run-p watch serve", "start": "run-p watch serve",
"test": "run-s css:lint js:lint jest", "test": "run-s css:lint js:lint jest",
@@ -27,43 +27,59 @@
"watch:images": "nodemon -q --watch images -e png,jpg,gif --exec npm run images", "watch:images": "nodemon -q --watch images -e png,jpg,gif --exec npm run images",
"watch:js": "nodemon -q --watch js -e js --exec npm run js" "watch:js": "nodemon -q --watch js -e js --exec npm run js"
}, },
"devDependencies": {
"browser-sync": "^2.26.3",
"docker-compose": "^0.9.3",
"mysql": "^2.16.0",
"nodemon": "^1.18.7",
"pre-commit": "^1.2.2"
},
"dependencies": { "dependencies": {
"@babel/cli": "^7.2.3", "@babel/cli": "^7.2.3",
"@babel/core": "^7.2.0", "@babel/core": "^7.3.4",
"@babel/preset-env": "^7.2.3", "@babel/preset-env": "^7.3.4",
"babel-core": "^7.0.0-bridge.0", "babel-core": "^7.0.0-bridge.0",
"babel-jest": "^23.6.0", "babel-jest": "^24.1.0",
"cssnano": "^4.1.8", "browser-sync": "^2.26.3",
"eslint": "^5.12.0", "cssnano": "^4.1.10",
"docker-compose": "^0.12.0",
"eslint": "^5.15.0",
"eslint-config-airbnb-base": "^13.1.0", "eslint-config-airbnb-base": "^13.1.0",
"eslint-plugin-import": "^2.14.0", "eslint-plugin-import": "^2.16.0",
"husky": "^1.3.1",
"imagemin": "^6.1.0", "imagemin": "^6.1.0",
"imagemin-gifsicle": "^6.0.1", "imagemin-gifsicle": "^6.0.1",
"imagemin-jpegtran": "^6.0.0", "imagemin-jpegtran": "^6.0.0",
"imagemin-pngquant": "^7.0.0", "imagemin-pngquant": "^7.0.0",
"jest": "^23.6.0", "jest": "^24.1.0",
"lint-staged": "^8.1.5",
"mysql": "^2.16.0",
"nodemon": "^1.18.10",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"postcss-banner": "^3.0.0", "postcss-banner": "^3.0.1",
"postcss-cli": "^6.1.1", "postcss-cli": "^6.1.2",
"postcss-import": "^12.0.1", "postcss-import": "^12.0.1",
"postcss-normalize": "^7.0.1", "postcss-normalize": "^7.0.1",
"postcss-preset-env": "^6.4.0", "postcss-preset-env": "^6.6.0",
"rollup": "^1.1.0", "rollup": "^1.4.0",
"rollup-plugin-babel": "^4.3.0", "rollup-plugin-babel": "^4.3.2",
"rollup-plugin-uglify": "^6.0.1", "rollup-plugin-uglify": "^6.0.2",
"stylelint": "^9.9.0", "stylelint": "^9.10.1",
"stylelint-config-standard": "^18.0.0" "stylelint-config-standard": "^18.2.0"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"build/*.js": [
"eslint --fix build",
"git add"
],
"css/*.css": [
"stylelint --fix css/*.css",
"git add"
],
"js/*.js": [
"eslint --fix js",
"jest",
"git add"
]
}, },
"pre-commit": [
"test"
],
"browserslist": [ "browserslist": [
"last 1 version", "last 1 version",
"not dead", "not dead",