@madebyseed/seed-cli-tools 2.3.0 → 2.3.1
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.
- package/lib/tasks/build-css.js +29 -1
- package/lib/tasks/build-js.js +36 -2
- package/package.json +3 -2
- package/src/tasks/build-css.js +25 -1
- package/src/tasks/build-js.js +32 -4
package/lib/tasks/build-css.js
CHANGED
|
@@ -12,6 +12,11 @@ var plumber = require("gulp-plumber");
|
|
|
12
12
|
|
|
13
13
|
var chokidar = require("chokidar");
|
|
14
14
|
|
|
15
|
+
var _require = require("glob"),
|
|
16
|
+
glob = _require.glob;
|
|
17
|
+
|
|
18
|
+
var fs = require("fs");
|
|
19
|
+
|
|
15
20
|
var config = require("./includes/config.js");
|
|
16
21
|
|
|
17
22
|
var messages = require("./includes/messages.js");
|
|
@@ -51,6 +56,25 @@ function processSass() {
|
|
|
51
56
|
}).pipe(plumber(utils.errorHandler)).pipe(sass()).pipe(postcss(config.plugins.postcss)).pipe(gulp.dest(config.dist.assets)).on('finish', resolve).on('error', reject);
|
|
52
57
|
});
|
|
53
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Touch CSS files to update their modification time
|
|
61
|
+
* This ensures Shopify's watcher detects the changes
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
function touchCssFiles() {
|
|
66
|
+
try {
|
|
67
|
+
var cssFiles = glob.sync("".concat(config.dist.assets, "*.css"));
|
|
68
|
+
cssFiles.forEach(function (file) {
|
|
69
|
+
// Update the file modification time to trigger Shopify's watcher
|
|
70
|
+
var now = new Date();
|
|
71
|
+
fs.utimesSync(file, now, now);
|
|
72
|
+
messages.logFileEvent("touch", file);
|
|
73
|
+
});
|
|
74
|
+
} catch (error) {
|
|
75
|
+
console.error("Error touching CSS files:", error);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
54
78
|
/**
|
|
55
79
|
* Concatenate css via gulp-cssimport
|
|
56
80
|
*
|
|
@@ -82,6 +106,10 @@ gulp.task("watch:css", function () {
|
|
|
82
106
|
messages.logFileEvent(event, path);
|
|
83
107
|
}
|
|
84
108
|
|
|
85
|
-
processCss();
|
|
109
|
+
processCss(); // Important: Touch CSS files after processing to ensure Shopify detects changes
|
|
110
|
+
|
|
111
|
+
setTimeout(function () {
|
|
112
|
+
touchCssFiles();
|
|
113
|
+
}, 500);
|
|
86
114
|
});
|
|
87
115
|
});
|
package/lib/tasks/build-js.js
CHANGED
|
@@ -16,6 +16,11 @@ var chokidar = require('chokidar');
|
|
|
16
16
|
|
|
17
17
|
var minify = composer(uglifyjs, console);
|
|
18
18
|
|
|
19
|
+
var _require = require("glob"),
|
|
20
|
+
glob = _require.glob;
|
|
21
|
+
|
|
22
|
+
var fs = require("fs");
|
|
23
|
+
|
|
19
24
|
var utils = require("./includes/utilities");
|
|
20
25
|
|
|
21
26
|
var config = require('./includes/config.js');
|
|
@@ -40,6 +45,25 @@ function processVendorJs() {
|
|
|
40
45
|
compress: true
|
|
41
46
|
})).pipe(gulp.dest(config.dist.assets));
|
|
42
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Touch JS files to update their modification time
|
|
50
|
+
* This ensures Shopify's watcher detects the changes
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
function touchJsFiles() {
|
|
55
|
+
try {
|
|
56
|
+
var jsFiles = glob.sync("".concat(config.dist.assets, "*.js"));
|
|
57
|
+
jsFiles.forEach(function (file) {
|
|
58
|
+
// Update the file modification time to trigger Shopify's watcher
|
|
59
|
+
var now = new Date();
|
|
60
|
+
fs.utimesSync(file, now, now);
|
|
61
|
+
messages.logFileEvent("touch", file);
|
|
62
|
+
});
|
|
63
|
+
} catch (error) {
|
|
64
|
+
console.error("Error touching JS files:", error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
43
67
|
|
|
44
68
|
gulp.task('build:js', function () {
|
|
45
69
|
return processThemeJs();
|
|
@@ -49,7 +73,12 @@ gulp.task('watch:js', function () {
|
|
|
49
73
|
ignoreInitial: true
|
|
50
74
|
}).on('all', function (event, path) {
|
|
51
75
|
messages.logFileEvent(event, path);
|
|
52
|
-
processThemeJs()
|
|
76
|
+
processThemeJs().then(function () {
|
|
77
|
+
// Touch JS files after processing to ensure Shopify detects changes
|
|
78
|
+
setTimeout(function () {
|
|
79
|
+
touchJsFiles();
|
|
80
|
+
}, 500);
|
|
81
|
+
});
|
|
53
82
|
});
|
|
54
83
|
});
|
|
55
84
|
gulp.task('build:vendor-js', function () {
|
|
@@ -60,6 +89,11 @@ gulp.task('watch:vendor-js', function () {
|
|
|
60
89
|
ignoreInitial: true
|
|
61
90
|
}).on('all', function (event, path) {
|
|
62
91
|
messages.logFileEvent(event, path);
|
|
63
|
-
processVendorJs()
|
|
92
|
+
processVendorJs().then(function () {
|
|
93
|
+
// Touch JS files after processing to ensure Shopify detects changes
|
|
94
|
+
setTimeout(function () {
|
|
95
|
+
touchJsFiles();
|
|
96
|
+
}, 500);
|
|
97
|
+
});
|
|
64
98
|
});
|
|
65
99
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@madebyseed/seed-cli-tools",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"description": "Seed CLI Tools",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"fancy-log": "^1.3.3",
|
|
35
35
|
"figures": "^3.2.0",
|
|
36
36
|
"find-root": "^1.1.0",
|
|
37
|
+
"glob": "^11.0.2",
|
|
37
38
|
"gulp": "^4.0.2",
|
|
38
39
|
"gulp-ext-replace": "^0.3.0",
|
|
39
40
|
"gulp-if": "^3.0.0",
|
|
@@ -57,5 +58,5 @@
|
|
|
57
58
|
"webpack-stream": "^7.0.0",
|
|
58
59
|
"yargs": "^17.0.1"
|
|
59
60
|
},
|
|
60
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "018f1210f603f30c38dfb6cc17eb66967072e3b3"
|
|
61
62
|
}
|
package/src/tasks/build-css.js
CHANGED
|
@@ -4,7 +4,8 @@ const sass = require("gulp-sass")(require("sass"));
|
|
|
4
4
|
const postcss = require("gulp-postcss");
|
|
5
5
|
const plumber = require("gulp-plumber");
|
|
6
6
|
const chokidar = require("chokidar");
|
|
7
|
-
|
|
7
|
+
const { glob } = require("glob");
|
|
8
|
+
const fs = require("fs");
|
|
8
9
|
const config = require("./includes/config.js");
|
|
9
10
|
const messages = require("./includes/messages.js");
|
|
10
11
|
const utils = require("./includes/utilities");
|
|
@@ -67,6 +68,24 @@ function processCss() {
|
|
|
67
68
|
.on('error', reject)
|
|
68
69
|
})
|
|
69
70
|
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Touch CSS files to update their modification time
|
|
75
|
+
* This ensures Shopify's watcher detects the changes
|
|
76
|
+
*/
|
|
77
|
+
function touchCssFiles() {
|
|
78
|
+
try {
|
|
79
|
+
const cssFiles = glob.sync(`${config.dist.assets}*.css`);
|
|
80
|
+
cssFiles.forEach((file) => {
|
|
81
|
+
// Update the file modification time to trigger Shopify's watcher
|
|
82
|
+
const now = new Date();
|
|
83
|
+
fs.utimesSync(file, now, now);
|
|
84
|
+
messages.logFileEvent("touch", file);
|
|
85
|
+
});
|
|
86
|
+
} catch (error) {
|
|
87
|
+
console.error(`Error touching CSS files:`, error);
|
|
88
|
+
}
|
|
70
89
|
}
|
|
71
90
|
|
|
72
91
|
/**
|
|
@@ -98,5 +117,10 @@ gulp.task("watch:css", () => {
|
|
|
98
117
|
}
|
|
99
118
|
|
|
100
119
|
processCss();
|
|
120
|
+
|
|
121
|
+
// Important: Touch CSS files after processing to ensure Shopify detects changes
|
|
122
|
+
setTimeout(() => {
|
|
123
|
+
touchCssFiles();
|
|
124
|
+
}, 500);
|
|
101
125
|
});
|
|
102
126
|
});
|
package/src/tasks/build-js.js
CHANGED
|
@@ -6,8 +6,8 @@ const include = require('gulp-include');
|
|
|
6
6
|
const plumber = require('gulp-plumber');
|
|
7
7
|
const chokidar = require('chokidar');
|
|
8
8
|
const minify = composer(uglifyjs, console)
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const { glob } = require("glob");
|
|
10
|
+
const fs = require("fs");
|
|
11
11
|
const utils = require("./includes/utilities");
|
|
12
12
|
const config = require('./includes/config.js');
|
|
13
13
|
const messages = require('./includes/messages.js');
|
|
@@ -34,6 +34,24 @@ function processVendorJs() {
|
|
|
34
34
|
.pipe(gulp.dest(config.dist.assets));
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Touch JS files to update their modification time
|
|
39
|
+
* This ensures Shopify's watcher detects the changes
|
|
40
|
+
*/
|
|
41
|
+
function touchJsFiles() {
|
|
42
|
+
try {
|
|
43
|
+
const jsFiles = glob.sync(`${config.dist.assets}*.js`);
|
|
44
|
+
jsFiles.forEach((file) => {
|
|
45
|
+
// Update the file modification time to trigger Shopify's watcher
|
|
46
|
+
const now = new Date();
|
|
47
|
+
fs.utimesSync(file, now, now);
|
|
48
|
+
messages.logFileEvent("touch", file);
|
|
49
|
+
});
|
|
50
|
+
} catch (error) {
|
|
51
|
+
console.error(`Error touching JS files:`, error);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
37
55
|
gulp.task('build:js', () => {
|
|
38
56
|
return processThemeJs();
|
|
39
57
|
});
|
|
@@ -42,7 +60,12 @@ gulp.task('watch:js', () => {
|
|
|
42
60
|
chokidar.watch([config.src.js, `!${config.roots.vendorJs}`, `!${config.src.vendorJs}`], {ignoreInitial: true})
|
|
43
61
|
.on('all', (event, path) => {
|
|
44
62
|
messages.logFileEvent(event, path);
|
|
45
|
-
processThemeJs()
|
|
63
|
+
processThemeJs().then(() => {
|
|
64
|
+
// Touch JS files after processing to ensure Shopify detects changes
|
|
65
|
+
setTimeout(() => {
|
|
66
|
+
touchJsFiles();
|
|
67
|
+
}, 500);
|
|
68
|
+
});
|
|
46
69
|
});
|
|
47
70
|
});
|
|
48
71
|
|
|
@@ -54,6 +77,11 @@ gulp.task('watch:vendor-js', () => {
|
|
|
54
77
|
chokidar.watch([config.roots.vendorJs, config.src.vendorJs], {ignoreInitial: true})
|
|
55
78
|
.on('all', (event, path) => {
|
|
56
79
|
messages.logFileEvent(event, path);
|
|
57
|
-
processVendorJs()
|
|
80
|
+
processVendorJs().then(() => {
|
|
81
|
+
// Touch JS files after processing to ensure Shopify detects changes
|
|
82
|
+
setTimeout(() => {
|
|
83
|
+
touchJsFiles();
|
|
84
|
+
}, 500);
|
|
85
|
+
});
|
|
58
86
|
});
|
|
59
87
|
});
|