@madebyseed/seed-cli-tools 2.3.0 → 2.3.2

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.
@@ -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
  });
@@ -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();
@@ -50,6 +74,9 @@ gulp.task('watch:js', function () {
50
74
  }).on('all', function (event, path) {
51
75
  messages.logFileEvent(event, path);
52
76
  processThemeJs();
77
+ setTimeout(function () {
78
+ touchJsFiles();
79
+ }, 500);
53
80
  });
54
81
  });
55
82
  gulp.task('build:vendor-js', function () {
@@ -60,6 +87,11 @@ gulp.task('watch:vendor-js', function () {
60
87
  ignoreInitial: true
61
88
  }).on('all', function (event, path) {
62
89
  messages.logFileEvent(event, path);
63
- processVendorJs();
90
+ processVendorJs().then(function () {
91
+ // Touch JS files after processing to ensure Shopify detects changes
92
+ setTimeout(function () {
93
+ touchJsFiles();
94
+ }, 500);
95
+ });
64
96
  });
65
97
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madebyseed/seed-cli-tools",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
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": "b238f65d36559b8b10670bc8840c24c853b497f9"
61
+ "gitHead": "3b3d003a98a25e96b48813718481f68250d5943d"
61
62
  }
@@ -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
  });
@@ -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,11 @@ 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();
64
+
65
+ setTimeout(() => {
66
+ touchJsFiles();
67
+ }, 500);
46
68
  });
47
69
  });
48
70
 
@@ -54,6 +76,11 @@ gulp.task('watch:vendor-js', () => {
54
76
  chokidar.watch([config.roots.vendorJs, config.src.vendorJs], {ignoreInitial: true})
55
77
  .on('all', (event, path) => {
56
78
  messages.logFileEvent(event, path);
57
- processVendorJs();
79
+ processVendorJs().then(() => {
80
+ // Touch JS files after processing to ensure Shopify detects changes
81
+ setTimeout(() => {
82
+ touchJsFiles();
83
+ }, 500);
84
+ });
58
85
  });
59
86
  });