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

Sign up to get free protection for your applications and to get access to all the features.
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
- }