@shopify/create-hydrogen 1.0.9 → 2.0.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.
- package/CHANGELOG.md +26 -0
- package/dist/commands/init.js +133 -62
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +12 -8
- package/templates/template-hydrogen-default/.devcontainer/devcontainer.json +0 -18
- package/templates/template-hydrogen-default/.eslintrc.js +0 -3
- package/templates/template-hydrogen-default/.gitignore +0 -7
- package/templates/template-hydrogen-default/.stylelintrc.js +0 -17
- package/templates/template-hydrogen-default/.vscode/extensions.json +0 -8
- package/templates/template-hydrogen-default/README.md +0 -40
- package/templates/template-hydrogen-default/_gitignore +0 -80
- package/templates/template-hydrogen-default/index.html +0 -20
- package/templates/template-hydrogen-default/package.json.liquid +0 -48
- package/templates/template-hydrogen-default/postcss.config.js +0 -6
- package/templates/template-hydrogen-default/public/favicon.ico +0 -0
- package/templates/template-hydrogen-default/shopify.config.js +0 -5
- package/templates/template-hydrogen-default/src/App.server.jsx +0 -27
- package/templates/template-hydrogen-default/src/components/Button.client.jsx +0 -65
- package/templates/template-hydrogen-default/src/components/Cart.client.jsx +0 -265
- package/templates/template-hydrogen-default/src/components/CartIcon.jsx +0 -33
- package/templates/template-hydrogen-default/src/components/CartIconWithItems.client.jsx +0 -28
- package/templates/template-hydrogen-default/src/components/CartProvider.client.jsx +0 -35
- package/templates/template-hydrogen-default/src/components/CartToggle.client.jsx +0 -30
- package/templates/template-hydrogen-default/src/components/CartUIProvider.client.jsx +0 -45
- package/templates/template-hydrogen-default/src/components/CountrySelector.client.jsx +0 -116
- package/templates/template-hydrogen-default/src/components/DefaultSeo.server.jsx +0 -36
- package/templates/template-hydrogen-default/src/components/FeaturedCollection.jsx +0 -26
- package/templates/template-hydrogen-default/src/components/Footer.server.jsx +0 -103
- package/templates/template-hydrogen-default/src/components/Gallery.client.jsx +0 -66
- package/templates/template-hydrogen-default/src/components/Header.client.jsx +0 -62
- package/templates/template-hydrogen-default/src/components/Layout.server.jsx +0 -86
- package/templates/template-hydrogen-default/src/components/LoadMoreProducts.client.jsx +0 -56
- package/templates/template-hydrogen-default/src/components/LoadingFallback.jsx +0 -26
- package/templates/template-hydrogen-default/src/components/MobileCountrySelector.client.jsx +0 -64
- package/templates/template-hydrogen-default/src/components/MobileNavigation.client.jsx +0 -98
- package/templates/template-hydrogen-default/src/components/MoneyCompareAtPrice.client.jsx +0 -14
- package/templates/template-hydrogen-default/src/components/MoneyPrice.client.jsx +0 -15
- package/templates/template-hydrogen-default/src/components/Navigation.client.jsx +0 -23
- package/templates/template-hydrogen-default/src/components/NotFound.server.jsx +0 -93
- package/templates/template-hydrogen-default/src/components/OpenIcon.jsx +0 -33
- package/templates/template-hydrogen-default/src/components/ProductCard.jsx +0 -50
- package/templates/template-hydrogen-default/src/components/ProductDetails.client.jsx +0 -233
- package/templates/template-hydrogen-default/src/components/ProductOptions.client.jsx +0 -49
- package/templates/template-hydrogen-default/src/components/Welcome.server.jsx +0 -188
- package/templates/template-hydrogen-default/src/index.css +0 -68
- package/templates/template-hydrogen-default/src/pages/collections/[handle].server.jsx +0 -105
- package/templates/template-hydrogen-default/src/pages/index.server.jsx +0 -241
- package/templates/template-hydrogen-default/src/pages/pages/[handle].server.jsx +0 -37
- package/templates/template-hydrogen-default/src/pages/products/[handle].server.jsx +0 -66
- package/templates/template-hydrogen-default/src/pages/redirect.server.jsx +0 -4
- package/templates/template-hydrogen-default/src/pages/robots.txt.server.js +0 -40
- package/templates/template-hydrogen-default/src/pages/sitemap.xml.server.jsx +0 -151
- package/templates/template-hydrogen-default/src/routes/collections/[handle].server.jsx +0 -105
- package/templates/template-hydrogen-default/src/routes/index.server.jsx +0 -241
- package/templates/template-hydrogen-default/src/routes/pages/[handle].server.jsx +0 -37
- package/templates/template-hydrogen-default/src/routes/products/[handle].server.jsx +0 -66
- package/templates/template-hydrogen-default/src/routes/redirect.server.jsx +0 -4
- package/templates/template-hydrogen-default/src/routes/robots.txt.server.js +0 -40
- package/templates/template-hydrogen-default/src/routes/sitemap.xml.server.jsx +0 -151
- package/templates/template-hydrogen-default/tailwind.config.js +0 -26
- package/templates/template-hydrogen-default/vite.config.js +0 -10
- package/templates/template-hydrogen-minimal/README.md +0 -8
- package/templates/template-hydrogen-minimal/package.json +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @shopify/create-hydrogen
|
|
2
2
|
|
|
3
|
+
## 2.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c6a9450b: Add support to scaffold function extensions
|
|
8
|
+
- Updated dependencies [c6a9450b]
|
|
9
|
+
- Updated dependencies [70d8d50d]
|
|
10
|
+
- @shopify/cli-kit@2.0.2
|
|
11
|
+
|
|
12
|
+
## 2.0.1
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [9cb99f12]
|
|
17
|
+
- Updated dependencies [882e54e6]
|
|
18
|
+
- @shopify/cli-kit@2.0.1
|
|
19
|
+
|
|
20
|
+
## 1.1.1
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- Updated dependencies [488c06a]
|
|
25
|
+
- Updated dependencies [f156c37]
|
|
26
|
+
- Updated dependencies [5763a76]
|
|
27
|
+
- @shopify/cli-kit@1.1.1
|
|
28
|
+
|
|
3
29
|
## 1.0.9
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
package/dist/commands/init.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { ui, path,
|
|
2
|
-
import { fileURLToPath } from 'url';
|
|
1
|
+
import { ui, os, constants, string, path, file, git, template, npm, output, dependency, cli } from '@shopify/cli-kit';
|
|
3
2
|
import { Writable } from 'stream';
|
|
4
3
|
import { Flags, Command } from '@oclif/core';
|
|
5
4
|
|
|
6
|
-
const HYDROGEN_VERSION = "0.11.1-experimental.1";
|
|
7
|
-
|
|
8
5
|
const TEMPLATE_MAP = {
|
|
9
|
-
["template-hydrogen-default" /* Default */]: "Shopify/hydrogen/
|
|
10
|
-
["template-hydrogen-minimum" /* Minimum */]: "Shopify/hydrogen/
|
|
6
|
+
["template-hydrogen-default" /* Default */]: "Shopify/hydrogen/templates/template-hydrogen-default",
|
|
7
|
+
["template-hydrogen-minimum" /* Minimum */]: "Shopify/hydrogen/templates/template-hydrogen-hello-world"
|
|
11
8
|
};
|
|
12
9
|
const init$1 = async (options, prompt = ui.prompt) => {
|
|
13
10
|
const questions = [];
|
|
@@ -25,69 +22,111 @@ const init$1 = async (options, prompt = ui.prompt) => {
|
|
|
25
22
|
name: "template",
|
|
26
23
|
message: "Choose a template",
|
|
27
24
|
choices: Object.keys(TEMPLATE_MAP),
|
|
28
|
-
default: "template-hydrogen-default" /* Default
|
|
25
|
+
default: "template-hydrogen-default" /* Default */,
|
|
26
|
+
result: (value) => TEMPLATE_MAP[value]
|
|
29
27
|
});
|
|
30
28
|
}
|
|
31
29
|
const promptOutput = await prompt(questions);
|
|
32
30
|
return { ...options, ...promptOutput };
|
|
33
31
|
};
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
const templatePath = await path.findUp(`templates/${name}`, {
|
|
37
|
-
cwd: path.dirname(fileURLToPath(import.meta.url)),
|
|
38
|
-
type: "directory",
|
|
39
|
-
...options
|
|
40
|
-
});
|
|
41
|
-
if (templatePath) {
|
|
42
|
-
return templatePath;
|
|
43
|
-
} else {
|
|
44
|
-
throw new error.Bug(`Couldn't find the template ${name}.`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
33
|
+
const GIT_HOST = "git@github.com";
|
|
48
34
|
async function init(options) {
|
|
49
35
|
const user = await os.username() ?? "";
|
|
50
|
-
const templatePath = await template(options.template);
|
|
51
36
|
const cliPackageVersion = options.shopifyCliVersion ?? constants.versions.cli;
|
|
37
|
+
const cliHydrogenPackageVersion = options.cliHydrogenPackageVersion ?? constants.versions.cliHydrogen;
|
|
52
38
|
const hydrogenPackageVersion = options.hydrogenVersion;
|
|
53
39
|
const dependencyManager = inferDependencyManager(options.dependencyManager);
|
|
54
40
|
const hyphenizedName = string.hyphenize(options.name);
|
|
55
41
|
const outputDirectory = path.join(options.directory, hyphenizedName);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
42
|
+
await file.inTemporaryDirectory(async (tmpDir) => {
|
|
43
|
+
const templateDownloadDir = path.join(tmpDir, "download");
|
|
44
|
+
const templateScaffoldDir = path.join(tmpDir, "app");
|
|
45
|
+
await file.mkdir(templateDownloadDir);
|
|
46
|
+
await file.mkdir(templateScaffoldDir);
|
|
47
|
+
const list = new ui.Listr([
|
|
48
|
+
{
|
|
49
|
+
title: "Downloading template",
|
|
50
|
+
task: async (_, task) => {
|
|
51
|
+
await git.downloadRepository({
|
|
52
|
+
repoUrl: [GIT_HOST, options.template].join(":"),
|
|
53
|
+
destination: templateDownloadDir
|
|
54
|
+
});
|
|
55
|
+
task.title = "Template downloaded";
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
title: `Initializing your app ${hyphenizedName}`,
|
|
60
|
+
task: async (_, parentTask) => {
|
|
61
|
+
return parentTask.newListr([
|
|
62
|
+
{
|
|
63
|
+
title: "Parsing template files",
|
|
64
|
+
task: async (_2, task) => {
|
|
65
|
+
const templateData = {
|
|
66
|
+
name: hyphenizedName,
|
|
67
|
+
shopify_cli_version: cliPackageVersion,
|
|
68
|
+
hydrogen_version: hydrogenPackageVersion,
|
|
69
|
+
author: user,
|
|
70
|
+
dependency_manager: options.dependencyManager
|
|
71
|
+
};
|
|
72
|
+
await template.recursiveDirectoryCopy(templateDownloadDir, templateScaffoldDir, templateData);
|
|
73
|
+
task.title = "Template files parsed";
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
title: "Updating package.json",
|
|
78
|
+
task: async (_2, task) => {
|
|
79
|
+
const packageJSON = await npm.readPackageJSON(templateScaffoldDir);
|
|
80
|
+
await npm.updateAppData(packageJSON, hyphenizedName);
|
|
81
|
+
await updateCLIDependencies(packageJSON, options.local, {
|
|
82
|
+
dependencies: {
|
|
83
|
+
"@shopify/hydrogen": hydrogenPackageVersion
|
|
84
|
+
},
|
|
85
|
+
devDependencies: {
|
|
86
|
+
"@shopify/cli-hydrogen": cliHydrogenPackageVersion,
|
|
87
|
+
"@shopify/cli": cliPackageVersion
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
await npm.writePackageJSON(templateScaffoldDir, packageJSON);
|
|
91
|
+
task.title = "Package.json updated";
|
|
92
|
+
parentTask.title = "App initialized";
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
], { concurrent: false });
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
title: `Installing dependencies with ${dependencyManager}`,
|
|
100
|
+
task: async (_, task) => {
|
|
101
|
+
const stdout = new Writable({
|
|
102
|
+
write(chunk, encoding, next) {
|
|
103
|
+
task.output = chunk.toString();
|
|
104
|
+
next();
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
await installDependencies(templateScaffoldDir, dependencyManager, stdout);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
title: "Cleaning up",
|
|
112
|
+
task: async (_, task) => {
|
|
113
|
+
await cleanup(templateScaffoldDir);
|
|
114
|
+
task.title = "Completed clean up";
|
|
115
|
+
}
|
|
82
116
|
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
117
|
+
], { concurrent: false });
|
|
118
|
+
await list.run();
|
|
119
|
+
await file.move(templateScaffoldDir, outputDirectory);
|
|
120
|
+
});
|
|
86
121
|
output.info(output.content`
|
|
87
122
|
${hyphenizedName} is ready to build! ✨
|
|
88
123
|
Run ${output.token.command(`${dependencyManager} dev`)} to start developing.
|
|
89
124
|
Docs: ${output.token.link("Quick start guide", "https://shopify.dev/custom-storefronts/hydrogen")}
|
|
90
125
|
`);
|
|
126
|
+
output.info(output.content`Your project will display inventory from the Hydrogen Demo Store.
|
|
127
|
+
To connect this project to your Shopify store's inventory instead,
|
|
128
|
+
update ${output.token.yellow(`${hyphenizedName}/shopify.config.js`)} with your
|
|
129
|
+
store ID and Storefront API key.\n`);
|
|
91
130
|
}
|
|
92
131
|
function inferDependencyManager(optionsDependencyManager) {
|
|
93
132
|
if (optionsDependencyManager && dependency.dependencyManager.includes(optionsDependencyManager)) {
|
|
@@ -95,18 +134,43 @@ function inferDependencyManager(optionsDependencyManager) {
|
|
|
95
134
|
}
|
|
96
135
|
return dependency.dependencyManagerUsedForCreating();
|
|
97
136
|
}
|
|
137
|
+
async function updateCLIDependencies(packageJSON, local, packageDependencies) {
|
|
138
|
+
const { devDependencies, dependencies } = packageDependencies;
|
|
139
|
+
packageJSON.devDependencies = packageJSON.devDependencies || {};
|
|
140
|
+
packageJSON.dependencies = packageJSON.dependencies || {};
|
|
141
|
+
Object.keys(devDependencies).forEach((key) => {
|
|
142
|
+
packageJSON.devDependencies[key] = devDependencies[key] || packageJSON.devDependencies[key];
|
|
143
|
+
});
|
|
144
|
+
Object.keys(dependencies).forEach((key) => {
|
|
145
|
+
packageJSON.dependencies[key] = dependencies[key] || packageJSON.dependencies[key];
|
|
146
|
+
});
|
|
147
|
+
if (local) {
|
|
148
|
+
const devDependencyOverrides = {
|
|
149
|
+
"@shopify/cli": `file:${await path.findUp("packages/cli", { type: "directory" })}`,
|
|
150
|
+
"@shopify/cli-hydrogen": `file:${await path.findUp("packages/cli-hydrogen", { type: "directory" })}`
|
|
151
|
+
};
|
|
152
|
+
packageJSON.overrides = packageJSON.overrides ? { ...packageJSON.overrides, ...devDependencyOverrides } : devDependencyOverrides;
|
|
153
|
+
packageJSON.resolutions = packageJSON.resolutions ? { ...packageJSON.resolutions, ...devDependencyOverrides } : devDependencyOverrides;
|
|
154
|
+
}
|
|
155
|
+
return packageJSON;
|
|
156
|
+
}
|
|
98
157
|
async function installDependencies(directory, dependencyManager, stdout) {
|
|
99
158
|
await dependency.install(directory, dependencyManager, stdout);
|
|
100
159
|
}
|
|
101
|
-
async function
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
160
|
+
async function cleanup(webOutputDirectory) {
|
|
161
|
+
const gitPaths = await path.glob([
|
|
162
|
+
path.join(webOutputDirectory, "**", ".git"),
|
|
163
|
+
path.join(webOutputDirectory, "**", ".github"),
|
|
164
|
+
path.join(webOutputDirectory, "**", ".gitmodules"),
|
|
165
|
+
path.join(webOutputDirectory, ".stackblitzrc")
|
|
166
|
+
], {
|
|
167
|
+
dot: true,
|
|
168
|
+
onlyFiles: false,
|
|
169
|
+
onlyDirectories: false,
|
|
170
|
+
ignore: ["**/node_modules/**"]
|
|
171
|
+
});
|
|
172
|
+
return Promise.all(gitPaths.map((path2) => file.rmdir(path2, { force: true }))).then(() => {
|
|
173
|
+
});
|
|
110
174
|
}
|
|
111
175
|
|
|
112
176
|
const _Init = class extends Command {
|
|
@@ -123,12 +187,14 @@ const _Init = class extends Command {
|
|
|
123
187
|
dependencyManager: flags["dependency-manager"],
|
|
124
188
|
shopifyCliVersion: flags["shopify-cli-version"],
|
|
125
189
|
hydrogenVersion: flags["hydrogen-version"],
|
|
126
|
-
directory
|
|
190
|
+
directory,
|
|
191
|
+
local: flags.local
|
|
127
192
|
});
|
|
128
193
|
}
|
|
129
194
|
};
|
|
130
195
|
let Init = _Init;
|
|
131
196
|
Init.flags = {
|
|
197
|
+
...cli.globalFlags,
|
|
132
198
|
name: Flags.string({
|
|
133
199
|
char: "n",
|
|
134
200
|
env: "SHOPIFY_FLAG_NAME",
|
|
@@ -159,8 +225,13 @@ Init.flags = {
|
|
|
159
225
|
"hydrogen-version": Flags.string({
|
|
160
226
|
char: "h",
|
|
161
227
|
env: "SHOPIFY_FLAG_HYDROGEN_VERSION",
|
|
162
|
-
hidden: false
|
|
163
|
-
|
|
228
|
+
hidden: false
|
|
229
|
+
}),
|
|
230
|
+
local: Flags.boolean({
|
|
231
|
+
char: "l",
|
|
232
|
+
env: "SHOPIFY_FLAG_LOCAL",
|
|
233
|
+
default: false,
|
|
234
|
+
hidden: true
|
|
164
235
|
})
|
|
165
236
|
};
|
|
166
237
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sources":["../../src/utils/versions.ts","../../src/prompts/init.ts","../../src/utils/paths.ts","../../src/services/init.ts","../../src/commands/init.ts"],"sourcesContent":["export const HYDROGEN_VERSION = '0.11.1-experimental.1'\n","import {ui} from '@shopify/cli-kit'\n\nexport enum Template {\n Minimum = 'template-hydrogen-minimum',\n Default = 'template-hydrogen-default',\n}\n\ninterface InitOptions {\n name?: string\n template?: string\n}\n\ninterface InitOutput {\n name: string\n template: Template\n}\n\nconst TEMPLATE_MAP = {\n [Template.Default]: 'Shopify/hydrogen/examples/template-hydrogen-default',\n [Template.Minimum]: 'Shopify/hydrogen/examples/template-hydrogen-minimum',\n}\n\nconst init = async (options: InitOptions, prompt = ui.prompt): Promise<InitOutput> => {\n const questions: ui.Question[] = []\n if (!options.name) {\n questions.push({\n type: 'input',\n name: 'name',\n message: 'Name your new Hydrogen storefront',\n default: 'hydrogen-app',\n })\n }\n\n if (!options.template) {\n questions.push({\n type: 'select',\n name: 'template',\n message: 'Choose a template',\n choices: Object.keys(TEMPLATE_MAP),\n default: Template.Default,\n })\n }\n\n const promptOutput: InitOutput = await prompt(questions)\n return {...options, ...promptOutput}\n}\n\nexport default init\n","import {path, error} from '@shopify/cli-kit'\nimport {fileURLToPath} from 'url'\n\nexport async function template(name: string, options: {cwd?: string} = {}): Promise<string> {\n const templatePath = await path.findUp(`templates/${name}`, {\n cwd: path.dirname(fileURLToPath(import.meta.url)),\n type: 'directory',\n ...options,\n })\n if (templatePath) {\n return templatePath\n } else {\n // TODO Check remote sources for templates\n throw new error.Bug(`Couldn't find the template ${name}.`)\n }\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n\nimport {template as getTemplatePath} from '../utils/paths'\nimport {constants, string, path, template, file, output, os, ui, dependency} from '@shopify/cli-kit'\nimport {Writable} from 'stream'\n\ninterface InitOptions {\n name: string\n template: string\n directory: string\n dependencyManager: string | undefined\n shopifyCliVersion: string | undefined\n hydrogenVersion: string\n}\n\nconst RENAME_MAP = {\n _gitignore: '.gitignore',\n}\n\nasync function init(options: InitOptions) {\n const user = (await os.username()) ?? ''\n const templatePath = await getTemplatePath(options.template)\n const cliPackageVersion = options.shopifyCliVersion ?? constants.versions.cli\n const hydrogenPackageVersion = options.hydrogenVersion\n const dependencyManager = inferDependencyManager(options.dependencyManager)\n const hyphenizedName = string.hyphenize(options.name)\n const outputDirectory = path.join(options.directory, hyphenizedName)\n const list = new ui.Listr(\n [\n {\n title: `Initializing your hydrogen storefront ${hyphenizedName}`,\n task: async (_, task) => {\n await createHydrogen({\n ...options,\n outputDirectory,\n templatePath,\n cliPackageVersion,\n hydrogenPackageVersion,\n user,\n dependencyManager,\n })\n task.title = 'Initialized'\n },\n },\n {\n title: `Installing dependencies with ${dependencyManager}`,\n task: async (_, task) => {\n const stdout = new Writable({\n write(chunk, encoding, next) {\n task.output = chunk.toString()\n next()\n },\n })\n await installDependencies(outputDirectory, dependencyManager, stdout)\n },\n },\n ],\n {concurrent: false},\n )\n await list.run()\n\n output.info(output.content`\n ${hyphenizedName} is ready to build! ✨\n Run ${output.token.command(`${dependencyManager} dev`)} to start developing.\n Docs: ${output.token.link('Quick start guide', 'https://shopify.dev/custom-storefronts/hydrogen')}\n `)\n}\n\nfunction inferDependencyManager(optionsDependencyManager: string | undefined): dependency.DependencyManager {\n if (optionsDependencyManager && dependency.dependencyManager.includes(optionsDependencyManager)) {\n return optionsDependencyManager as dependency.DependencyManager\n }\n return dependency.dependencyManagerUsedForCreating()\n}\n\nfunction initializeGit() {\n return file.write('.gitignore', 'node_modules/')\n}\n\nasync function installDependencies(\n directory: string,\n dependencyManager: dependency.DependencyManager,\n stdout: Writable,\n): Promise<void> {\n await dependency.install(directory, dependencyManager, stdout)\n}\n\nasync function createHydrogen(\n options: InitOptions & {\n outputDirectory: string\n templatePath: string\n cliPackageVersion: string\n hydrogenPackageVersion: string\n user: string\n dependencyManager: string\n },\n): Promise<void> {\n const templateData = {\n name: options.name,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n shopify_cli_version: options.cliPackageVersion,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n hydrogen_version: options.hydrogenPackageVersion,\n author: options.user,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dependency_manager: options.dependencyManager,\n }\n await template.recursiveDirectoryCopy(options.templatePath, options.outputDirectory, templateData)\n}\n\nexport default init\n","import {HYDROGEN_VERSION} from '../utils/versions'\nimport initPrompt from '../prompts/init'\nimport initService from '../services/init'\nimport {path} from '@shopify/cli-kit'\nimport {Command, Flags} from '@oclif/core'\n\nexport default class Init extends Command {\n static flags = {\n name: Flags.string({\n char: 'n',\n env: 'SHOPIFY_FLAG_NAME',\n hidden: false,\n }),\n template: Flags.string({\n char: 't',\n env: 'SHOPIFY_FLAG_TEMPLATE',\n hidden: false,\n }),\n path: Flags.string({\n char: 'p',\n env: 'SHOPIFY_FLAG_PATH',\n parse: (input, _) => Promise.resolve(path.resolve(input)),\n hidden: false,\n }),\n 'dependency-manager': Flags.string({\n char: 'd',\n env: 'SHOPIFY_FLAG_DEPENDENCY_MANAGER',\n hidden: false,\n options: ['npm', 'yarn', 'pnpm'],\n }),\n 'shopify-cli-version': Flags.string({\n char: 's',\n env: 'SHOPIFY_FLAG_SHOPIFY_CLI_VERSION',\n hidden: false,\n }),\n 'hydrogen-version': Flags.string({\n char: 'h',\n env: 'SHOPIFY_FLAG_HYDROGEN_VERSION',\n hidden: false,\n default: HYDROGEN_VERSION,\n }),\n }\n\n async run(): Promise<void> {\n const {flags} = await this.parse(Init)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n const promptAnswers = await initPrompt({\n name: flags.name,\n template: flags.template,\n })\n await initService({\n name: promptAnswers.name,\n template: promptAnswers.template,\n dependencyManager: flags['dependency-manager'],\n shopifyCliVersion: flags['shopify-cli-version'],\n hydrogenVersion: flags['hydrogen-version'],\n directory,\n })\n }\n}\n"],"names":["init","getTemplatePath","template","initPrompt","initService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sources":["../../src/prompts/init.ts","../../src/services/init.ts","../../src/commands/init.ts"],"sourcesContent":["import {ui} from '@shopify/cli-kit'\n\nexport enum Template {\n Minimum = 'template-hydrogen-minimum',\n Default = 'template-hydrogen-default',\n}\n\ninterface InitOptions {\n name?: string\n template?: string\n}\n\ninterface InitOutput {\n name: string\n template: Template\n}\n\nconst TEMPLATE_MAP = {\n [Template.Default]: 'Shopify/hydrogen/templates/template-hydrogen-default',\n [Template.Minimum]: 'Shopify/hydrogen/templates/template-hydrogen-hello-world',\n}\n\nconst init = async (options: InitOptions, prompt = ui.prompt): Promise<InitOutput> => {\n const questions: ui.Question[] = []\n if (!options.name) {\n questions.push({\n type: 'input',\n name: 'name',\n message: 'Name your new Hydrogen storefront',\n default: 'hydrogen-app',\n })\n }\n\n if (!options.template) {\n questions.push({\n type: 'select',\n name: 'template',\n message: 'Choose a template',\n choices: Object.keys(TEMPLATE_MAP),\n default: Template.Default,\n result: (value) => TEMPLATE_MAP[value as Template],\n })\n }\n\n const promptOutput: InitOutput = await prompt(questions)\n return {...options, ...promptOutput}\n}\n\nexport default init\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n\nimport {constants, template, string, path, file, output, os, ui, npm, dependency, git} from '@shopify/cli-kit'\nimport {Writable} from 'stream'\n\ninterface InitOptions {\n name: string\n template: string\n directory: string\n dependencyManager?: string\n shopifyCliVersion?: string\n cliHydrogenPackageVersion?: string\n hydrogenVersion?: string\n local: boolean\n}\n\nconst RENAME_MAP = {\n _gitignore: '.gitignore',\n}\n\nconst GIT_HOST = 'git@github.com'\n\nasync function init(options: InitOptions) {\n const user = (await os.username()) ?? ''\n const cliPackageVersion = options.shopifyCliVersion ?? constants.versions.cli\n const cliHydrogenPackageVersion = options.cliHydrogenPackageVersion ?? constants.versions.cliHydrogen\n const hydrogenPackageVersion = options.hydrogenVersion\n const dependencyManager = inferDependencyManager(options.dependencyManager)\n const hyphenizedName = string.hyphenize(options.name)\n const outputDirectory = path.join(options.directory, hyphenizedName)\n\n await file.inTemporaryDirectory(async (tmpDir) => {\n const templateDownloadDir = path.join(tmpDir, 'download')\n const templateScaffoldDir = path.join(tmpDir, 'app')\n\n await file.mkdir(templateDownloadDir)\n await file.mkdir(templateScaffoldDir)\n\n const list = new ui.Listr(\n [\n {\n title: 'Downloading template',\n task: async (_, task) => {\n await git.downloadRepository({\n repoUrl: [GIT_HOST, options.template].join(':'),\n destination: templateDownloadDir,\n })\n task.title = 'Template downloaded'\n },\n },\n {\n title: `Initializing your app ${hyphenizedName}`,\n task: async (_, parentTask) => {\n return parentTask.newListr(\n [\n {\n title: 'Parsing template files',\n task: async (_, task) => {\n const templateData = {\n name: hyphenizedName,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n shopify_cli_version: cliPackageVersion,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n hydrogen_version: hydrogenPackageVersion,\n author: user,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n dependency_manager: options.dependencyManager,\n }\n await template.recursiveDirectoryCopy(templateDownloadDir, templateScaffoldDir, templateData)\n\n task.title = 'Template files parsed'\n },\n },\n {\n title: 'Updating package.json',\n task: async (_, task) => {\n const packageJSON = await npm.readPackageJSON(templateScaffoldDir)\n\n await npm.updateAppData(packageJSON, hyphenizedName)\n await updateCLIDependencies(packageJSON, options.local, {\n dependencies: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/hydrogen': hydrogenPackageVersion,\n },\n devDependencies: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/cli-hydrogen': cliHydrogenPackageVersion,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/cli': cliPackageVersion,\n },\n })\n\n await npm.writePackageJSON(templateScaffoldDir, packageJSON)\n\n task.title = 'Package.json updated'\n parentTask.title = 'App initialized'\n },\n },\n ],\n {concurrent: false},\n )\n },\n },\n {\n title: `Installing dependencies with ${dependencyManager}`,\n task: async (_, task) => {\n const stdout = new Writable({\n write(chunk, encoding, next) {\n task.output = chunk.toString()\n next()\n },\n })\n await installDependencies(templateScaffoldDir, dependencyManager, stdout)\n },\n },\n {\n title: 'Cleaning up',\n task: async (_, task) => {\n await cleanup(templateScaffoldDir)\n\n task.title = 'Completed clean up'\n },\n },\n ],\n {concurrent: false},\n )\n await list.run()\n\n await file.move(templateScaffoldDir, outputDirectory)\n })\n\n output.info(output.content`\n ${hyphenizedName} is ready to build! ✨\n Run ${output.token.command(`${dependencyManager} dev`)} to start developing.\n Docs: ${output.token.link('Quick start guide', 'https://shopify.dev/custom-storefronts/hydrogen')}\n `)\n\n output.info(output.content`Your project will display inventory from the Hydrogen Demo Store.\n To connect this project to your Shopify store's inventory instead,\n update ${output.token.yellow(`${hyphenizedName}/shopify.config.js`)} with your\n store ID and Storefront API key.\\n`)\n}\n\nfunction inferDependencyManager(optionsDependencyManager: string | undefined): dependency.DependencyManager {\n if (optionsDependencyManager && dependency.dependencyManager.includes(optionsDependencyManager)) {\n return optionsDependencyManager as dependency.DependencyManager\n }\n return dependency.dependencyManagerUsedForCreating()\n}\n\nexport default init\n\ninterface PackageDependencies {\n devDependencies: {[key: string]: string | undefined}\n dependencies: {[key: string]: string | undefined}\n}\n\nasync function updateCLIDependencies(\n packageJSON: npm.PackageJSON,\n local: boolean,\n packageDependencies: PackageDependencies,\n): Promise<npm.PackageJSON> {\n const {devDependencies, dependencies} = packageDependencies\n\n packageJSON.devDependencies = packageJSON.devDependencies || {}\n packageJSON.dependencies = packageJSON.dependencies || {}\n\n Object.keys(devDependencies).forEach((key) => {\n packageJSON.devDependencies[key] = devDependencies[key] || packageJSON.devDependencies[key]\n })\n\n Object.keys(dependencies).forEach((key) => {\n packageJSON.dependencies[key] = dependencies[key] || packageJSON.dependencies[key]\n })\n\n if (local) {\n const devDependencyOverrides = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/cli': `file:${(await path.findUp('packages/cli', {type: 'directory'})) as string}`,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '@shopify/cli-hydrogen': `file:${(await path.findUp('packages/cli-hydrogen', {type: 'directory'})) as string}`,\n }\n\n packageJSON.overrides = packageJSON.overrides\n ? {...packageJSON.overrides, ...devDependencyOverrides}\n : devDependencyOverrides\n\n packageJSON.resolutions = packageJSON.resolutions\n ? {...packageJSON.resolutions, ...devDependencyOverrides}\n : devDependencyOverrides\n }\n\n return packageJSON\n}\n\nasync function installDependencies(\n directory: string,\n dependencyManager: dependency.DependencyManager,\n stdout: Writable,\n): Promise<void> {\n await dependency.install(directory, dependencyManager, stdout)\n}\n\nasync function cleanup(webOutputDirectory: string) {\n const gitPaths = await path.glob(\n [\n path.join(webOutputDirectory, '**', '.git'),\n path.join(webOutputDirectory, '**', '.github'),\n path.join(webOutputDirectory, '**', '.gitmodules'),\n path.join(webOutputDirectory, '.stackblitzrc'),\n ],\n {\n dot: true,\n onlyFiles: false,\n onlyDirectories: false,\n ignore: ['**/node_modules/**'],\n },\n )\n\n return Promise.all(gitPaths.map((path) => file.rmdir(path, {force: true}))).then(() => {})\n}\n","import initPrompt from '../prompts/init'\nimport initService from '../services/init'\nimport {path, cli} from '@shopify/cli-kit'\nimport {Command, Flags} from '@oclif/core'\n\nexport default class Init extends Command {\n static flags = {\n ...cli.globalFlags,\n name: Flags.string({\n char: 'n',\n env: 'SHOPIFY_FLAG_NAME',\n hidden: false,\n }),\n template: Flags.string({\n char: 't',\n env: 'SHOPIFY_FLAG_TEMPLATE',\n hidden: false,\n }),\n path: Flags.string({\n char: 'p',\n env: 'SHOPIFY_FLAG_PATH',\n parse: (input, _) => Promise.resolve(path.resolve(input)),\n hidden: false,\n }),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'dependency-manager': Flags.string({\n char: 'd',\n env: 'SHOPIFY_FLAG_DEPENDENCY_MANAGER',\n hidden: false,\n options: ['npm', 'yarn', 'pnpm'],\n }),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'shopify-cli-version': Flags.string({\n char: 's',\n env: 'SHOPIFY_FLAG_SHOPIFY_CLI_VERSION',\n hidden: false,\n }),\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'hydrogen-version': Flags.string({\n char: 'h',\n env: 'SHOPIFY_FLAG_HYDROGEN_VERSION',\n hidden: false,\n }),\n local: Flags.boolean({\n char: 'l',\n env: 'SHOPIFY_FLAG_LOCAL',\n default: false,\n hidden: true,\n }),\n }\n\n async run(): Promise<void> {\n const {flags} = await this.parse(Init)\n const directory = flags.path ? path.resolve(flags.path) : process.cwd()\n const promptAnswers = await initPrompt({\n name: flags.name,\n template: flags.template,\n })\n await initService({\n name: promptAnswers.name,\n template: promptAnswers.template,\n dependencyManager: flags['dependency-manager'],\n shopifyCliVersion: flags['shopify-cli-version'],\n hydrogenVersion: flags['hydrogen-version'],\n directory,\n local: flags.local,\n })\n }\n}\n"],"names":["init","initPrompt","initService"],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {run, flush, settings} from '@oclif/core'\nimport {error as kitError, environment} from '@shopify/cli-kit'\n\nfunction runCreateHydrogen() {\n const initIndex = process.argv.findIndex((arg) => arg.includes('init'))\n if (initIndex === -1) {\n const initIndex =\n process.argv.findIndex(\n (arg) => arg.includes('bin/create-hydrogen') || arg.includes('bin/dev') || arg.includes('bin/run'),\n ) + 1\n process.argv.splice(initIndex, 0, 'init')\n }\n\n if (environment.local.isDebug()) {\n settings.debug = true\n }\n\n // Start the CLI\n run(undefined, import.meta.url)\n .then(flush)\n .catch((error: Error): Promise<void | Error> => {\n const kitMapper = kitError.mapper\n const kitHandle = kitError.handler\n // eslint-disable-next-line promise/no-nesting\n return kitMapper(error).then((error: Error) => {\n kitHandle(error)\n })\n })\n}\n\nexport default runCreateHydrogen\n"],"names":["error","kitError"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import {run, flush, settings} from '@oclif/core'\nimport {error as kitError, environment} from '@shopify/cli-kit'\n\nfunction runCreateHydrogen() {\n const initIndex = process.argv.findIndex((arg) => arg.includes('init'))\n if (initIndex === -1) {\n const initIndex =\n process.argv.findIndex(\n (arg) => arg.includes('bin/create-hydrogen') || arg.includes('bin/dev') || arg.includes('bin/run'),\n ) + 1\n process.argv.splice(initIndex, 0, 'init')\n }\n\n if (environment.local.isDebug()) {\n settings.debug = true\n }\n\n // Start the CLI\n run(undefined, import.meta.url)\n .then(flush)\n .catch((error: Error): Promise<void | Error> => {\n const kitMapper = kitError.mapper\n const kitHandle = kitError.handler\n // eslint-disable-next-line promise/no-nesting\n return kitMapper(error).then((error: Error) => {\n kitHandle(error)\n })\n })\n}\n\nexport default runCreateHydrogen\n"],"names":["error","kitError"],"mappings":";;;AAGA,SAA6B,iBAAA,GAAA;AAC3B,EAAM,MAAA,SAAA,GAAY,QAAQ,IAAK,CAAA,SAAA,CAAU,CAAC,GAAQ,KAAA,GAAA,CAAI,QAAS,CAAA,MAAM,CAAC,CAAA,CAAA;AACtE,EAAA,IAAI,cAAc,CAAI,CAAA,EAAA;AACpB,IAAA,MAAM,aACJ,OAAQ,CAAA,IAAA,CAAK,UACX,CAAC,GAAA,KAAQ,IAAI,QAAS,CAAA,qBAAqB,CAAK,IAAA,GAAA,CAAI,SAAS,SAAS,CAAA,IAAK,IAAI,QAAS,CAAA,SAAS,CACnG,CAAI,GAAA,CAAA,CAAA;AACN,IAAA,OAAA,CAAQ,IAAK,CAAA,MAAA,CAAO,UAAW,EAAA,CAAA,EAAG,MAAM,CAAA,CAAA;AAAA,GAC1C;AAEA,EAAI,IAAA,WAAA,CAAY,KAAM,CAAA,OAAA,EAAW,EAAA;AAC/B,IAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,GACnB;AAGA,EAAI,GAAA,CAAA,KAAA,CAAA,EAAW,YAAY,GAAG,CAAA,CAC3B,KAAK,KAAK,CAAA,CACV,KAAM,CAAA,CAACA,OAAwC,KAAA;AAC9C,IAAA,MAAM,YAAYC,KAAS,CAAA,MAAA,CAAA;AAC3B,IAAA,MAAM,YAAYA,KAAS,CAAA,OAAA,CAAA;AAE3B,IAAA,OAAO,SAAU,CAAAD,OAAK,CAAE,CAAA,IAAA,CAAK,CAAC,MAAiB,KAAA;AAC7C,MAAA,SAAA,CAAU,MAAK,CAAA,CAAA;AAAA,KAChB,CAAA,CAAA;AAAA,GACF,CAAA,CAAA;AACL;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shopify/create-hydrogen",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A CLI tool to create a new Shopify hydrogen app.",
|
|
6
6
|
"type": "module",
|
|
@@ -39,8 +39,7 @@
|
|
|
39
39
|
"lint:fix": "prettier -w src/** && eslint 'src/**/*.ts' --fix",
|
|
40
40
|
"test": "vitest run",
|
|
41
41
|
"test:watch": "vitest watch",
|
|
42
|
-
"tsc": "tsc --noEmit"
|
|
43
|
-
"refresh-templates": "node ./scripts/refresh-templates.mjs"
|
|
42
|
+
"tsc": "tsc --noEmit"
|
|
44
43
|
},
|
|
45
44
|
"eslintConfig": {
|
|
46
45
|
"extends": [
|
|
@@ -52,15 +51,17 @@
|
|
|
52
51
|
},
|
|
53
52
|
"dependencies": {
|
|
54
53
|
"@bugsnag/js": "^7.16.2",
|
|
55
|
-
"@
|
|
56
|
-
"@
|
|
54
|
+
"@oclif/core": "1.7.0",
|
|
55
|
+
"@shopify/cli-kit": "2.0.2",
|
|
56
|
+
"@types/download": "^8.0.1",
|
|
57
|
+
"download": "^8.0.0"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"vitest": "0.
|
|
60
|
+
"vitest": "0.10.0"
|
|
60
61
|
},
|
|
61
62
|
"engine-strict": true,
|
|
62
63
|
"engines": {
|
|
63
|
-
"node": "^14.13.1 || ^16.0.0 || ^17.0.0"
|
|
64
|
+
"node": "^14.13.1 || ^16.0.0 || ^17.0.0 || ^18.0.0"
|
|
64
65
|
},
|
|
65
66
|
"os": [
|
|
66
67
|
"darwin",
|
|
@@ -69,6 +70,9 @@
|
|
|
69
70
|
],
|
|
70
71
|
"oclif": {
|
|
71
72
|
"bin": "create-hydrogen",
|
|
72
|
-
"commands": "./dist/commands"
|
|
73
|
+
"commands": "./dist/commands",
|
|
74
|
+
"additionalHelpFlags": [
|
|
75
|
+
"-h"
|
|
76
|
+
]
|
|
73
77
|
}
|
|
74
78
|
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Shopify Hydrogen",
|
|
3
|
-
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-16",
|
|
4
|
-
"settings": {},
|
|
5
|
-
"extensions": [
|
|
6
|
-
"graphql.vscode-graphql",
|
|
7
|
-
"dbaeumer.vscode-eslint",
|
|
8
|
-
"bradlc.vscode-tailwindcss",
|
|
9
|
-
"esbenp.prettier-vscode"
|
|
10
|
-
],
|
|
11
|
-
"forwardPorts": [3000],
|
|
12
|
-
"postCreateCommand": "yarn install",
|
|
13
|
-
"postStartCommand": "yarn dev",
|
|
14
|
-
"remoteUser": "node",
|
|
15
|
-
"features": {
|
|
16
|
-
"git": "latest"
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
extends: ['@shopify/stylelint-plugin', '@shopify/stylelint-plugin/prettier'],
|
|
3
|
-
rules: {
|
|
4
|
-
'at-rule-no-unknown': [
|
|
5
|
-
true,
|
|
6
|
-
{
|
|
7
|
-
ignoreAtRules: ['tailwind', 'layer'],
|
|
8
|
-
},
|
|
9
|
-
],
|
|
10
|
-
'selector-type-no-unknown': [
|
|
11
|
-
true,
|
|
12
|
-
{
|
|
13
|
-
ignoreTypes: ['model-viewer'],
|
|
14
|
-
},
|
|
15
|
-
],
|
|
16
|
-
},
|
|
17
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Hydrogen App
|
|
2
|
-
|
|
3
|
-
Hydrogen is a React framework and SDK that you can use to build fast and dynamic Shopify custom storefronts.
|
|
4
|
-
|
|
5
|
-
[Check out the docs](https://shopify.dev/custom-storefronts/hydrogen)
|
|
6
|
-
|
|
7
|
-
## Getting started
|
|
8
|
-
|
|
9
|
-
**Requirements:**
|
|
10
|
-
|
|
11
|
-
- Node.js version 16.5.0 or higher
|
|
12
|
-
- Yarn
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
yarn
|
|
16
|
-
yarn dev
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Remember to update `shopify.config.js` with your shop's domain and Storefront API token!
|
|
20
|
-
|
|
21
|
-
## Previewing a production build
|
|
22
|
-
|
|
23
|
-
To run a local preview of your Hydrogen app in an environment similar to Oxygen, build your Hydrogen app and then run `yarn preview`:
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
yarn build
|
|
27
|
-
yarn preview
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Building for production
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
yarn build
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Then, you can run a local `server.js` using the production build with:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
yarn serve
|
|
40
|
-
```
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# THIS IS A STUB FOR NEW HYDROGEN APPS
|
|
2
|
-
# THIS WILL EVENTUALLY MOVE TO A /TEMPLATE-* FOLDER
|
|
3
|
-
|
|
4
|
-
# Logs
|
|
5
|
-
logs
|
|
6
|
-
*.log
|
|
7
|
-
npm-debug.log*
|
|
8
|
-
yarn-debug.log*
|
|
9
|
-
yarn-error.log*
|
|
10
|
-
lerna-debug.log*
|
|
11
|
-
|
|
12
|
-
# Diagnostic reports (https://nodejs.org/api/report.html)
|
|
13
|
-
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
|
14
|
-
|
|
15
|
-
# Runtime data
|
|
16
|
-
pids
|
|
17
|
-
*.pid
|
|
18
|
-
*.seed
|
|
19
|
-
*.pid.lock
|
|
20
|
-
|
|
21
|
-
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
22
|
-
lib-cov
|
|
23
|
-
|
|
24
|
-
# Coverage directory used by tools like istanbul
|
|
25
|
-
coverage
|
|
26
|
-
*.lcov
|
|
27
|
-
|
|
28
|
-
# nyc test coverage
|
|
29
|
-
.nyc_output
|
|
30
|
-
|
|
31
|
-
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
|
32
|
-
build/Release
|
|
33
|
-
|
|
34
|
-
# Dependency directories
|
|
35
|
-
node_modules/
|
|
36
|
-
jspm_packages/
|
|
37
|
-
|
|
38
|
-
# TypeScript cache
|
|
39
|
-
*.tsbuildinfo
|
|
40
|
-
|
|
41
|
-
# Optional npm cache directory
|
|
42
|
-
.npm
|
|
43
|
-
|
|
44
|
-
# Optional eslint cache
|
|
45
|
-
.eslintcache
|
|
46
|
-
|
|
47
|
-
# Microbundle cache
|
|
48
|
-
.rpt2_cache/
|
|
49
|
-
.rts2_cache_cjs/
|
|
50
|
-
.rts2_cache_es/
|
|
51
|
-
.rts2_cache_umd/
|
|
52
|
-
|
|
53
|
-
# Optional REPL history
|
|
54
|
-
.node_repl_history
|
|
55
|
-
|
|
56
|
-
# Output of 'npm pack'
|
|
57
|
-
*.tgz
|
|
58
|
-
|
|
59
|
-
# Yarn Integrity file
|
|
60
|
-
.yarn-integrity
|
|
61
|
-
|
|
62
|
-
# dotenv environment variables file
|
|
63
|
-
.env
|
|
64
|
-
.env.test
|
|
65
|
-
|
|
66
|
-
# Serverless directories
|
|
67
|
-
.serverless/
|
|
68
|
-
|
|
69
|
-
# Stores VSCode versions used for testing VSCode extensions
|
|
70
|
-
.vscode-test
|
|
71
|
-
|
|
72
|
-
# yarn v2
|
|
73
|
-
.yarn/cache
|
|
74
|
-
.yarn/unplugged
|
|
75
|
-
.yarn/build-state.yml
|
|
76
|
-
.yarn/install-state.gz
|
|
77
|
-
.pnp.*
|
|
78
|
-
|
|
79
|
-
# Vite output
|
|
80
|
-
dist
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>Hydrogen App</title>
|
|
8
|
-
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
|
-
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
|
-
<link
|
|
11
|
-
href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@500&family=Roboto:wght@400;500;900&display=swap"
|
|
12
|
-
rel="stylesheet"
|
|
13
|
-
/>
|
|
14
|
-
<link rel="stylesheet" href="/src/index.css" />
|
|
15
|
-
</head>
|
|
16
|
-
<body>
|
|
17
|
-
<div id="root"></div>
|
|
18
|
-
<script type="module" src="/@shopify/hydrogen/entry-client"></script>
|
|
19
|
-
</body>
|
|
20
|
-
</html>
|