epeleg
epeleg

Reputation: 10955

npm script command to run a script command from another package.json

I have two separate projects that use npm - so I have both :
some_base_folder/projectA/package.json and some_base_folder/projectB/package.json

Each of those files has a scripts section in it.

If I go to some_base_folder/projectA/ and run npm run-script test it executes the test command from the scripts section of some_base_folder/projectA/package.json as it should.

What can I put as the value of "scripts": {test_projectA:'????' in some_base_folder/projectB/package.json so that when I am in some_base_folder/projectB/ and I run npm run-script test_projectA it will be execute the test script of Project A?

I tried ../projectA/npm run-script test but it says:

'..' is not recognized as an internal or external command,
operable program or batch file.

I am running under windows 7 but would prefer a solution that would also work properly on linux.

Upvotes: 66

Views: 48895

Answers (3)

nanobar
nanobar

Reputation: 66475

You should use --prefix.

npm run [command] --prefix path/to/your/other/folder

And for yarn:

yarn --cwd path/to/your/other/folder [command]

Upvotes: 68

yellowsir
yellowsir

Reputation: 939

I ended up using:

"scripts": {
   "job": "cd ./sub && \"$npm_execpath\" run subjob",
   ...
}

because this also works with yarn.

Upvotes: 14

epeleg
epeleg

Reputation: 10955

well it turns out to be quite simple:

"scripts": {
  test_projectA:"cd ../projectA && npm run-script test"
}

Upvotes: 89

Related Questions