Skip to content

Execute Arbitrary package.json Scripts #1254

Closed
@ObliviousHarmony

Description

@ObliviousHarmony

Describe the feature you'd like to request

Right now you are given an error message when you attempt to execute turbo run using a command that is not a pipeline in your turbo.json file. With our pnpm workspace we have to use both pnpm {command} --filter={package} and turbo run {command} --filter={package} depending on whether or not a command exists within a pipeline. It would be great if we could use a single tool for all of our commands.

As an aside, the error message:

failed to resolve targets: task test:js not found in turbo pipeline in package.json. Are you sure you added it?

Seems to indicate pipelines used to live in the root package.json. Should that be updated?

Describe the solution you'd like

Since turbo just executes package.json scripts as tasks, it would be convenient if it could execute arbitrary commands. This would default to "cache": false since there is no pipeline definition. The main issue I see with this would be ambiguity about whether or not a command was being executed as a pipeline or arbitrarily. I think that's fine though since it would give the message that it isn't using a cache due to configuration.

The other benefit here is that we'd get to use the comprehensive package filtering functionality on any script. A single syntax for running commands in a monorepo!

Describe alternatives you've considered

An alternative would be to just add every single possible package.json script from any package to the turbo.json. I believe this is unreasonable, however, since that could be a very large amount of variability. I do think this is a good way to enforce consistency to avoid accidents but it seems unnecessary.

Metadata

Metadata

Labels

area: ergonomicsIssues and features impacting the developer experience of using turbo

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions