create-turbo 1.4.4-canary.0 → 1.4.4-canary.3

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/dist/index.js CHANGED
@@ -19,10 +19,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
19
19
  // src/index.ts
20
20
  var path2 = __toESM(require("path"));
21
21
  var import_execa = __toESM(require("execa"));
22
- var import_fs_extra = __toESM(require("fs-extra"));
22
+ var import_fs = __toESM(require("fs"));
23
23
  var import_inquirer = __toESM(require("inquirer"));
24
24
  var import_ora = __toESM(require("ora"));
25
25
  var import_meow = __toESM(require("meow"));
26
+ var import_semver = require("semver");
26
27
  var import_gradient_string = __toESM(require("gradient-string"));
27
28
  var import_update_check = __toESM(require("update-check"));
28
29
  var import_chalk = __toESM(require("chalk"));
@@ -30,7 +31,7 @@ var import_chalk = __toESM(require("chalk"));
30
31
  // package.json
31
32
  var package_default = {
32
33
  name: "create-turbo",
33
- version: "1.4.3",
34
+ version: "1.4.4-canary.3",
34
35
  description: "Create a new Turborepo",
35
36
  homepage: "https://turborepo.org",
36
37
  license: "MPL-2.0",
@@ -46,14 +47,14 @@ var package_default = {
46
47
  "create-turbo": "dist/index.js"
47
48
  },
48
49
  scripts: {
49
- build: "tsup src/index.ts --format cjs",
50
+ build: "tsup",
50
51
  test: "jest",
51
- lint: "eslint src/**/*.ts"
52
+ lint: "eslint src/**/*.ts",
53
+ "check-types": "tsc --noEmit"
52
54
  },
53
55
  dependencies: {
54
56
  chalk: "2.4.2",
55
57
  execa: "5.1.1",
56
- "fs-extra": "^10.0.0",
57
58
  "gradient-string": "^2.0.0",
58
59
  inquirer: "^8.0.0",
59
60
  meow: "^7.1.1",
@@ -64,17 +65,18 @@ var package_default = {
64
65
  },
65
66
  devDependencies: {
66
67
  "@types/chalk-animation": "^1.6.0",
67
- "@types/fs-extra": "^9.0.13",
68
68
  "@types/gradient-string": "^1.1.2",
69
69
  "@types/inquirer": "^7.3.1",
70
70
  "@types/jest": "^27.4.0",
71
71
  "@types/node": "^16.11.12",
72
+ "@types/rimraf": "^3.0.2",
72
73
  "@types/semver": "^7.3.9",
73
74
  eslint: "^7.23.0",
74
75
  jest: "^27.4.3",
75
76
  semver: "^7.3.5",
76
77
  "strip-ansi": "^6.0.1",
77
78
  "ts-jest": "^27.1.1",
79
+ tsconfig: "workspace:*",
78
80
  tsup: "^5.10.3",
79
81
  typescript: "^4.5.5"
80
82
  },
@@ -113,10 +115,6 @@ function shouldUsePnpm() {
113
115
  return false;
114
116
  }
115
117
  }
116
- function getNpxCommandOfPnpm() {
117
- const currentVersion = (0, import_child_process2.execSync)("pnpm --version").toString();
118
- return Number(currentVersion.split(".")[0]) >= 6 ? "pnpm dlx" : "pnpx";
119
- }
120
118
 
121
119
  // src/git.ts
122
120
  var import_child_process3 = require("child_process");
@@ -166,38 +164,54 @@ function tryGitInit(root) {
166
164
 
167
165
  // src/constants.ts
168
166
  var PACKAGE_MANAGERS = {
169
- npm: {
170
- name: "npm",
171
- command: "npm"
172
- },
173
- pnpm: {
174
- name: "pnpm",
175
- command: "pnpm"
176
- },
177
- yarn: {
178
- name: "yarn",
179
- command: "yarn"
180
- },
181
- berry: {
182
- name: "berry",
183
- command: "yarn"
184
- }
167
+ npm: [
168
+ {
169
+ name: "npm",
170
+ template: "npm",
171
+ command: "npm",
172
+ installArgs: ["install"],
173
+ version: "latest",
174
+ executable: "npx",
175
+ semver: "*"
176
+ }
177
+ ],
178
+ pnpm: [
179
+ {
180
+ name: "pnpm",
181
+ template: "pnpm",
182
+ command: "pnpm",
183
+ installArgs: ["install"],
184
+ version: "latest",
185
+ executable: "pnpm dlx",
186
+ semver: ">=7"
187
+ }
188
+ ],
189
+ yarn: [
190
+ {
191
+ name: "yarn",
192
+ template: "yarn",
193
+ command: "yarn",
194
+ installArgs: ["install"],
195
+ version: "1.x",
196
+ executable: "npx",
197
+ semver: "<2"
198
+ },
199
+ {
200
+ name: "berry",
201
+ template: "berry",
202
+ command: "yarn",
203
+ installArgs: ["install", "--no-immutable"],
204
+ version: "stable",
205
+ executable: "yarn dlx",
206
+ semver: ">=2"
207
+ }
208
+ ]
185
209
  };
186
210
 
187
211
  // src/getPackageManagerVersion.ts
188
212
  var import_child_process4 = require("child_process");
189
- var getPackageManagerVersion = (ws) => {
190
- switch (ws.name) {
191
- case "berry":
192
- case "yarn":
193
- return (0, import_child_process4.execSync)("yarn --version").toString().trim();
194
- case "pnpm":
195
- return (0, import_child_process4.execSync)("pnpm --version").toString().trim();
196
- case "npm":
197
- return (0, import_child_process4.execSync)("npm --version").toString().trim();
198
- default:
199
- throw new Error(`${ws} is not supported`);
200
- }
213
+ var getPackageManagerVersion = (command) => {
214
+ return (0, import_child_process4.execSync)(`${command} --version`).toString().trim();
201
215
  };
202
216
 
203
217
  // src/index.ts
@@ -264,11 +278,11 @@ async function run() {
264
278
  const isPnpmInstalled = shouldUsePnpm();
265
279
  let answers;
266
280
  if (flags.useNpm) {
267
- answers = { packageManager: PACKAGE_MANAGERS["npm"] };
281
+ answers = { packageManager: "npm" };
268
282
  } else if (flags.usePnpm) {
269
- answers = { packageManager: PACKAGE_MANAGERS["pnpm"] };
283
+ answers = { packageManager: "pnpm" };
270
284
  } else if (flags.useYarn) {
271
- answers = { packageManager: PACKAGE_MANAGERS["yarn"] };
285
+ answers = { packageManager: "yarn" };
272
286
  } else {
273
287
  answers = await import_inquirer.default.prompt([
274
288
  {
@@ -276,15 +290,15 @@ async function run() {
276
290
  type: "list",
277
291
  message: "Which package manager do you want to use?",
278
292
  choices: [
279
- { name: "npm", value: PACKAGE_MANAGERS["npm"] },
293
+ { name: "npm", value: "npm" },
280
294
  {
281
295
  name: "pnpm",
282
- value: PACKAGE_MANAGERS["pnpm"],
296
+ value: "pnpm",
283
297
  disabled: !isPnpmInstalled && "not installed"
284
298
  },
285
299
  {
286
300
  name: "yarn",
287
- value: PACKAGE_MANAGERS["yarn"],
301
+ value: "yarn",
288
302
  disabled: !isYarnInstalled && "not installed"
289
303
  }
290
304
  ]
@@ -294,20 +308,29 @@ async function run() {
294
308
  let relativeProjectDir = path2.relative(process.cwd(), projectDir);
295
309
  let projectDirIsCurrentDir = relativeProjectDir === "";
296
310
  if (!projectDirIsCurrentDir) {
297
- if (import_fs_extra.default.existsSync(projectDir)) {
311
+ if (import_fs.default.existsSync(projectDir) && import_fs.default.readdirSync(projectDir).length !== 0) {
298
312
  console.log(`\uFE0F\u{1F6A8} Oops, "${relativeProjectDir}" already exists. Please try again with a different directory.`);
299
313
  process.exit(1);
300
314
  } else {
301
- await import_fs_extra.default.mkdir(projectDir);
315
+ import_fs.default.mkdirSync(projectDir, { recursive: true });
302
316
  }
303
317
  }
304
318
  let sharedTemplate = path2.resolve(__dirname, "../templates", `_shared_ts`);
305
- await import_fs_extra.default.copy(sharedTemplate, projectDir);
306
- let serverTemplate = path2.resolve(__dirname, "../templates", answers.packageManager.command);
307
- if (import_fs_extra.default.existsSync(serverTemplate)) {
308
- await import_fs_extra.default.copy(serverTemplate, projectDir, { overwrite: true });
319
+ import_fs.default.cpSync(sharedTemplate, projectDir, { recursive: true });
320
+ let packageManagerVersion = getPackageManagerVersion(answers.packageManager);
321
+ let packageManagerConfigs = PACKAGE_MANAGERS[answers.packageManager];
322
+ let packageManager = packageManagerConfigs.find((packageManager2) => (0, import_semver.satisfies)(packageManagerVersion, packageManager2.semver));
323
+ if (!packageManager) {
324
+ throw new Error("Unsupported package manager version.");
325
+ }
326
+ let packageManagerTemplate = path2.resolve(__dirname, "../templates", packageManager.template);
327
+ if (import_fs.default.existsSync(packageManagerTemplate)) {
328
+ import_fs.default.cpSync(packageManagerTemplate, projectDir, {
329
+ recursive: true,
330
+ force: true
331
+ });
309
332
  }
310
- await import_fs_extra.default.move(path2.join(projectDir, "gitignore"), path2.join(projectDir, ".gitignore"));
333
+ import_fs.default.renameSync(path2.join(projectDir, "gitignore"), path2.join(projectDir, ".gitignore"));
311
334
  let sharedPkg = require(path2.join(sharedTemplate, "package.json"));
312
335
  let projectPkg = require(path2.join(projectDir, "package.json"));
313
336
  ["dependencies", "devDependencies"].forEach((pkgKey) => {
@@ -316,70 +339,59 @@ async function run() {
316
339
  ...projectPkg[pkgKey]
317
340
  };
318
341
  });
319
- sharedPkg.packageManager = `${answers.packageManager.command}@${getPackageManagerVersion(answers.packageManager)}`;
342
+ sharedPkg.packageManager = `${packageManager.command}@${packageManagerVersion}`;
320
343
  sharedPkg.name = projectName;
321
- await import_fs_extra.default.writeFile(path2.join(projectDir, "package.json"), JSON.stringify(sharedPkg, null, 2));
344
+ import_fs.default.writeFileSync(path2.join(projectDir, "package.json"), JSON.stringify(sharedPkg, null, 2));
345
+ console.log();
346
+ console.log(`>>> Created a new turborepo with the following:`);
347
+ console.log();
348
+ console.log(` - ${import_chalk.default.bold("apps/web")}: Next.js with TypeScript`);
349
+ console.log(` - ${import_chalk.default.bold("apps/docs")}: Next.js with TypeScript`);
350
+ console.log(` - ${import_chalk.default.bold("packages/ui")}: Shared React component library`);
351
+ console.log(` - ${import_chalk.default.bold("packages/eslint-config-custom")}: Shared configuration (ESLint)`);
352
+ console.log(` - ${import_chalk.default.bold("packages/tsconfig")}: Shared TypeScript \`tsconfig.json\``);
353
+ console.log();
322
354
  if (flags.install) {
323
- console.log();
324
- console.log(`>>> Creating a new turborepo with the following:`);
325
- console.log();
326
- console.log(` - ${import_chalk.default.bold("apps/web")}: Next.js with TypeScript`);
327
- console.log(` - ${import_chalk.default.bold("apps/docs")}: Next.js with TypeScript`);
328
- console.log(` - ${import_chalk.default.bold("packages/ui")}: Shared React component library`);
329
- console.log(` - ${import_chalk.default.bold("packages/eslint-config-custom")}: Shared configuration (ESLint)`);
330
- console.log(` - ${import_chalk.default.bold("packages/tsconfig")}: Shared TypeScript \`tsconfig.json\``);
331
- console.log();
332
355
  const spinner = (0, import_ora.default)({
333
356
  text: "Installing dependencies...",
334
357
  spinner: {
335
358
  frames: [" ", "> ", ">> ", ">>>"]
336
359
  }
337
360
  }).start();
338
- const installArgs = ["install"];
339
- await (0, import_execa.default)(`${answers.packageManager.command}`, installArgs, {
361
+ await (0, import_execa.default)(`${packageManager.command}`, packageManager.installArgs, {
340
362
  stdio: "ignore",
341
363
  cwd: projectDir
342
364
  });
343
365
  spinner.stop();
344
- } else {
345
- console.log();
346
- console.log(`>>> Bootstrapped a new turborepo with the following:`);
347
- console.log();
348
- console.log(` - ${import_chalk.default.bold("apps/web")}: Next.js with TypeScript`);
349
- console.log(` - ${import_chalk.default.bold("apps/docs")}: Next.js with TypeScript`);
350
- console.log(` - ${import_chalk.default.bold("packages/ui")}: Shared React component library`);
351
- console.log(` - ${import_chalk.default.bold("packages/config")}: Shared configuration (ESLint)`);
352
- console.log(` - ${import_chalk.default.bold("packages/tsconfig")}: Shared TypeScript \`tsconfig.json\``);
353
- console.log();
354
366
  }
355
367
  process.chdir(projectDir);
356
368
  tryGitInit(relativeProjectDir);
357
369
  if (projectDirIsCurrentDir) {
358
- console.log(`${import_chalk.default.bold(turboGradient(">>> Success!"))} Your new Turborepo is ready. `);
370
+ console.log(`${import_chalk.default.bold(turboGradient(">>> Success!"))} Your new Turborepo is ready.`);
359
371
  console.log("Inside this directory, you can run several commands:");
360
372
  } else {
361
- console.log(`${import_chalk.default.bold(turboGradient(">>> Success!"))} Created a new Turborepo at "${relativeProjectDir}". `);
373
+ console.log(`${import_chalk.default.bold(turboGradient(">>> Success!"))} Created a new Turborepo at "${relativeProjectDir}".`);
362
374
  console.log("Inside that directory, you can run several commands:");
363
375
  }
364
376
  console.log();
365
- console.log(import_chalk.default.cyan(` ${answers.packageManager.command} run build`));
377
+ console.log(import_chalk.default.cyan(` ${packageManager.command} run build`));
366
378
  console.log(` Build all apps and packages`);
367
379
  console.log();
368
- console.log(import_chalk.default.cyan(` ${answers.packageManager.command} run dev`));
380
+ console.log(import_chalk.default.cyan(` ${packageManager.command} run dev`));
369
381
  console.log(` Develop all apps and packages`);
370
382
  console.log();
371
383
  console.log(`Turborepo will cache locally by default. For an additional`);
372
384
  console.log(`speed boost, enable Remote Caching with Vercel by`);
373
385
  console.log(`entering the following command:`);
374
386
  console.log();
375
- console.log(import_chalk.default.cyan(` ${getNpxCommand(answers.packageManager)} turbo login`));
387
+ console.log(import_chalk.default.cyan(` ${packageManager.executable} turbo login`));
376
388
  console.log();
377
389
  console.log(`We suggest that you begin by typing:`);
378
390
  console.log();
379
391
  if (!projectDirIsCurrentDir) {
380
392
  console.log(` ${import_chalk.default.cyan("cd")} ${relativeProjectDir}`);
381
393
  }
382
- console.log(import_chalk.default.cyan(` ${getNpxCommand(answers.packageManager)} turbo login`));
394
+ console.log(import_chalk.default.cyan(` ${packageManager.executable} turbo login`));
383
395
  console.log();
384
396
  }
385
397
  var update = (0, import_update_check.default)(package_default).catch(() => null);
@@ -397,10 +409,3 @@ async function notifyUpdate() {
397
409
  } catch {
398
410
  }
399
411
  }
400
- function getNpxCommand(pkgManager) {
401
- if (pkgManager.command === "pnpm") {
402
- return getNpxCommandOfPnpm();
403
- } else {
404
- return "npx";
405
- }
406
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-turbo",
3
- "version": "1.4.4-canary.0",
3
+ "version": "1.4.4-canary.3",
4
4
  "description": "Create a new Turborepo",
5
5
  "homepage": "https://turborepo.org",
6
6
  "license": "MPL-2.0",
@@ -16,14 +16,14 @@
16
16
  "create-turbo": "dist/index.js"
17
17
  },
18
18
  "scripts": {
19
- "build": "tsup src/index.ts --format cjs",
19
+ "build": "tsup",
20
20
  "test": "jest",
21
- "lint": "eslint src/**/*.ts"
21
+ "lint": "eslint src/**/*.ts",
22
+ "check-types": "tsc --noEmit"
22
23
  },
23
24
  "dependencies": {
24
25
  "chalk": "2.4.2",
25
26
  "execa": "5.1.1",
26
- "fs-extra": "^10.0.0",
27
27
  "gradient-string": "^2.0.0",
28
28
  "inquirer": "^8.0.0",
29
29
  "meow": "^7.1.1",
@@ -34,17 +34,18 @@
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/chalk-animation": "^1.6.0",
37
- "@types/fs-extra": "^9.0.13",
38
37
  "@types/gradient-string": "^1.1.2",
39
38
  "@types/inquirer": "^7.3.1",
40
39
  "@types/jest": "^27.4.0",
41
40
  "@types/node": "^16.11.12",
41
+ "@types/rimraf": "^3.0.2",
42
42
  "@types/semver": "^7.3.9",
43
43
  "eslint": "^7.23.0",
44
44
  "jest": "^27.4.3",
45
45
  "semver": "^7.3.5",
46
46
  "strip-ansi": "^6.0.1",
47
47
  "ts-jest": "^27.1.1",
48
+ "tsconfig": "workspace:*",
48
49
  "tsup": "^5.10.3",
49
50
  "typescript": "^4.5.5"
50
51
  },
@@ -9,7 +9,7 @@
9
9
  "lint": "next lint"
10
10
  },
11
11
  "dependencies": {
12
- "next": "12.2.4",
12
+ "next": "12.2.5",
13
13
  "react": "18.2.0",
14
14
  "react-dom": "18.2.0",
15
15
  "ui": "*"
@@ -9,7 +9,7 @@
9
9
  "lint": "next lint"
10
10
  },
11
11
  "dependencies": {
12
- "next": "12.2.4",
12
+ "next": "12.2.5",
13
13
  "react": "18.2.0",
14
14
  "react-dom": "18.2.0",
15
15
  "ui": "*"
@@ -18,7 +18,6 @@
18
18
  "turbo": "latest"
19
19
  },
20
20
  "engines": {
21
- "npm": ">=7.0.0",
22
21
  "node": ">=14.0.0"
23
22
  }
24
23
  }
@@ -7,7 +7,7 @@
7
7
  "eslint": "^7.23.0",
8
8
  "eslint-config-next": "^12.0.8",
9
9
  "eslint-config-prettier": "^8.3.0",
10
- "eslint-plugin-react": "7.28.0",
10
+ "eslint-plugin-react": "7.31.0",
11
11
  "eslint-config-turbo": "latest"
12
12
  },
13
13
  "devDependencies": {
@@ -2,7 +2,6 @@
2
2
  "name": "tsconfig",
3
3
  "version": "0.0.0",
4
4
  "private": true,
5
- "main": "index.js",
6
5
  "files": [
7
6
  "base.json",
8
7
  "nextjs.json",
@@ -0,0 +1 @@
1
+ nodeLinker: "node-modules"
@@ -0,0 +1,73 @@
1
+ # Turborepo starter
2
+
3
+ This is an official Yarn (Berry) starter turborepo.
4
+
5
+ ## What's inside?
6
+
7
+ This turborepo uses [Yarn](https://yarnpkg.com/) as a package manager. It includes the following packages/apps:
8
+
9
+ ### Apps and Packages
10
+
11
+ - `docs`: a [Next.js](https://nextjs.org) app
12
+ - `web`: another [Next.js](https://nextjs.org) app
13
+ - `ui`: a stub React component library shared by both `web` and `docs` applications
14
+ - `eslint-config-custom`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`)
15
+ - `tsconfig`: `tsconfig.json`s used throughout the monorepo
16
+
17
+ Each package/app is 100% [TypeScript](https://www.typescriptlang.org/).
18
+
19
+ ### Utilities
20
+
21
+ This turborepo has some additional tools already setup for you:
22
+
23
+ - [TypeScript](https://www.typescriptlang.org/) for static type checking
24
+ - [ESLint](https://eslint.org/) for code linting
25
+ - [Prettier](https://prettier.io) for code formatting
26
+
27
+ ### Build
28
+
29
+ To build all apps and packages, run the following command:
30
+
31
+ ```
32
+ cd my-turborepo
33
+ yarn run build
34
+ ```
35
+
36
+ ### Develop
37
+
38
+ To develop all apps and packages, run the following command:
39
+
40
+ ```
41
+ cd my-turborepo
42
+ yarn run dev
43
+ ```
44
+
45
+ ### Remote Caching
46
+
47
+ Turborepo can use a technique known as [Remote Caching](https://turborepo.org/docs/core-concepts/remote-caching) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.
48
+
49
+ By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can [create one](https://vercel.com/signup), then enter the following commands:
50
+
51
+ ```
52
+ cd my-turborepo
53
+ yarn dlx turbo login
54
+ ```
55
+
56
+ This will authenticate the Turborepo CLI with your [Vercel account](https://vercel.com/docs/concepts/personal-accounts/overview).
57
+
58
+ Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your turborepo:
59
+
60
+ ```
61
+ yarn dlx turbo link
62
+ ```
63
+
64
+ ## Useful Links
65
+
66
+ Learn more about the power of Turborepo:
67
+
68
+ - [Pipelines](https://turborepo.org/docs/core-concepts/pipelines)
69
+ - [Caching](https://turborepo.org/docs/core-concepts/caching)
70
+ - [Remote Caching](https://turborepo.org/docs/core-concepts/remote-caching)
71
+ - [Scoped Tasks](https://turborepo.org/docs/core-concepts/scopes)
72
+ - [Configuration Options](https://turborepo.org/docs/reference/configuration)
73
+ - [CLI Usage](https://turborepo.org/docs/reference/command-line-reference)
@@ -1,6 +1,6 @@
1
- # Turborepo starter with npm
1
+ # Turborepo starter
2
2
 
3
- This is an official starter turborepo.
3
+ This is an official npm starter turborepo.
4
4
 
5
5
  ## What's inside?
6
6
 
@@ -24,10 +24,6 @@ This turborepo has some additional tools already setup for you:
24
24
  - [ESLint](https://eslint.org/) for code linting
25
25
  - [Prettier](https://prettier.io) for code formatting
26
26
 
27
- ## Setup
28
-
29
- This repository is used in the `npx create-turbo@latest` command, and selected when choosing which package manager you wish to use with your monorepo (npm).
30
-
31
27
  ### Build
32
28
 
33
29
  To build all apps and packages, run the following command:
@@ -1,10 +1,10 @@
1
- # Turborepo starter with pnpm
1
+ # Turborepo starter
2
2
 
3
- This is an official starter turborepo.
3
+ This is an official pnpm starter turborepo.
4
4
 
5
5
  ## What's inside?
6
6
 
7
- This turborepo uses [pnpm](https://pnpm.io) as a packages manager. It includes the following packages/apps:
7
+ This turborepo uses [pnpm](https://pnpm.io) as a package manager. It includes the following packages/apps:
8
8
 
9
9
  ### Apps and Packages
10
10
 
@@ -24,10 +24,6 @@ This turborepo has some additional tools already setup for you:
24
24
  - [ESLint](https://eslint.org/) for code linting
25
25
  - [Prettier](https://prettier.io) for code formatting
26
26
 
27
- ## Setup
28
-
29
- This repository is used in the `npx create-turbo@latest` command, and selected when choosing which package manager you wish to use with your monorepo (pnpm).
30
-
31
27
  ### Build
32
28
 
33
29
  To build all apps and packages, run the following command:
@@ -54,7 +50,7 @@ By default, Turborepo will cache locally. To enable Remote Caching you will need
54
50
 
55
51
  ```
56
52
  cd my-turborepo
57
- pnpx turbo login
53
+ pnpm dlx turbo login
58
54
  ```
59
55
 
60
56
  This will authenticate the Turborepo CLI with your [Vercel account](https://vercel.com/docs/concepts/personal-accounts/overview).
@@ -62,7 +58,7 @@ This will authenticate the Turborepo CLI with your [Vercel account](https://verc
62
58
  Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your turborepo:
63
59
 
64
60
  ```
65
- pnpx turbo link
61
+ pnpm dlx turbo link
66
62
  ```
67
63
 
68
64
  ## Useful Links
@@ -9,7 +9,7 @@
9
9
  "lint": "next lint"
10
10
  },
11
11
  "dependencies": {
12
- "next": "12.2.4",
12
+ "next": "12.2.5",
13
13
  "react": "18.2.0",
14
14
  "react-dom": "18.2.0",
15
15
  "ui": "workspace:*"
@@ -9,7 +9,7 @@
9
9
  "lint": "next lint"
10
10
  },
11
11
  "dependencies": {
12
- "next": "12.2.4",
12
+ "next": "12.2.5",
13
13
  "react": "18.2.0",
14
14
  "react-dom": "18.2.0",
15
15
  "ui": "workspace:*"
@@ -12,5 +12,8 @@
12
12
  "eslint-config-custom": "workspace:*",
13
13
  "prettier": "latest",
14
14
  "turbo": "latest"
15
+ },
16
+ "engines": {
17
+ "node": ">=14.0.0"
15
18
  }
16
19
  }
@@ -4,7 +4,7 @@ This is an official Yarn v1 starter turborepo.
4
4
 
5
5
  ## What's inside?
6
6
 
7
- This turborepo uses [Yarn](https://classic.yarnpkg.com/lang/en/) as a package manager. It includes the following packages/apps:
7
+ This turborepo uses [Yarn](https://classic.yarnpkg.com/) as a package manager. It includes the following packages/apps:
8
8
 
9
9
  ### Apps and Packages
10
10
 
@@ -24,10 +24,6 @@ This turborepo has some additional tools already setup for you:
24
24
  - [ESLint](https://eslint.org/) for code linting
25
25
  - [Prettier](https://prettier.io) for code formatting
26
26
 
27
- ## Setup
28
-
29
- This repository is used in the `npx create-turbo` command, and selected when choosing which package manager you wish to use with your monorepo (Yarn).
30
-
31
27
  ### Build
32
28
 
33
29
  To build all apps and packages, run the following command:
@@ -1,19 +0,0 @@
1
- {
2
- "name": "turborepo-basic-npm",
3
- "version": "0.0.0",
4
- "private": true,
5
- "workspaces": [
6
- "apps/*",
7
- "packages/*"
8
- ],
9
- "scripts": {
10
- "build": "turbo run build",
11
- "dev": "turbo run dev --parallel",
12
- "lint": "turbo run lint",
13
- "format": "prettier --write \"**/*.{ts,tsx,md}\""
14
- },
15
- "devDependencies": {
16
- "prettier": "latest",
17
- "turbo": "latest"
18
- }
19
- }
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "https://turborepo.org/schema.json",
3
- "pipeline": {
4
- "build": {
5
- "dependsOn": ["^build"],
6
- "outputs": ["dist/**", ".next/**"]
7
- },
8
- "lint": {
9
- "outputs": []
10
- },
11
- "dev": {
12
- "cache": false
13
- }
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "https://turborepo.org/schema.json",
3
- "pipeline": {
4
- "build": {
5
- "dependsOn": ["^build"],
6
- "outputs": ["dist/**", ".next/**"]
7
- },
8
- "lint": {
9
- "outputs": []
10
- },
11
- "dev": {
12
- "cache": false
13
- }
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "https://turborepo.org/schema.json",
3
- "pipeline": {
4
- "build": {
5
- "dependsOn": ["^build"],
6
- "outputs": ["dist/**", ".next/**"]
7
- },
8
- "lint": {
9
- "outputs": []
10
- },
11
- "dev": {
12
- "cache": false
13
- }
14
- }
15
- }