feat(workspace): Enable run-commands preferLocal option by default (#6807)
This commit is contained in:
parent
effbdc7fac
commit
ebee6388cf
@ -1 +1,2 @@
|
||||
test:$6FrCaT/v0dwE:autocreated 2020-03-25T19:10:50.254Z
|
||||
dddd:ZpRSQxtFPtZog:autocreated 2021-08-21T07:57:21.687Z
|
||||
|
||||
@ -77,8 +77,8 @@
|
||||
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
|
||||
"@popperjs/core": "^2.9.2",
|
||||
"@reduxjs/toolkit": "1.5.0",
|
||||
"@rollup/plugin-commonjs": "^20.0.0",
|
||||
"@rollup/plugin-babel": "^5.3.0",
|
||||
"@rollup/plugin-commonjs": "^20.0.0",
|
||||
"@rollup/plugin-image": "^2.1.0",
|
||||
"@rollup/plugin-json": "^4.1.0",
|
||||
"@rollup/plugin-node-resolve": "^13.0.4",
|
||||
@ -267,6 +267,7 @@
|
||||
"core-js": "^3.6.5",
|
||||
"glob": "7.1.4",
|
||||
"gray-matter": "^4.0.2",
|
||||
"npm-run-path": "^4.0.1",
|
||||
"react": "17.0.2",
|
||||
"react-copy-to-clipboard": "^5.0.3",
|
||||
"react-dom": "17.0.2",
|
||||
|
||||
@ -67,6 +67,7 @@
|
||||
"glob": "7.1.4",
|
||||
"ignore": "^5.0.4",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"npm-run-path": "^4.0.1",
|
||||
"open": "^7.4.2",
|
||||
"rxjs": "^6.5.4",
|
||||
"semver": "7.3.4",
|
||||
|
||||
@ -2,6 +2,8 @@ import { readFileSync, unlinkSync, writeFileSync } from 'fs';
|
||||
import { relative } from 'path';
|
||||
import { dirSync, fileSync } from 'tmp';
|
||||
import runCommands, { LARGE_BUFFER } from './run-commands.impl';
|
||||
import { env } from 'npm-run-path';
|
||||
const { version } = require('package.json');
|
||||
|
||||
function normalize(p: string) {
|
||||
return p.startsWith('/private') ? p.substring(8) : p;
|
||||
@ -61,7 +63,10 @@ describe('Command Runner Builder', () => {
|
||||
expect(exec).toHaveBeenCalledWith(`echo --a=123 --b=456`, {
|
||||
stdio: [0, 1, 2],
|
||||
cwd: undefined,
|
||||
env: process.env,
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
});
|
||||
});
|
||||
@ -82,11 +87,17 @@ describe('Command Runner Builder', () => {
|
||||
expect(exec).toHaveBeenCalledTimes(2);
|
||||
expect(exec).toHaveBeenNthCalledWith(1, 'echo --a=123 --b=456', {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env },
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
});
|
||||
expect(exec).toHaveBeenNthCalledWith(2, 'echo foo --a=123 --b=456', {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env },
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
@ -109,11 +120,17 @@ describe('Command Runner Builder', () => {
|
||||
expect(exec).toHaveBeenCalledTimes(2);
|
||||
expect(exec).toHaveBeenNthCalledWith(1, 'echo --a=123 --b=456', {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env },
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
});
|
||||
expect(exec).toHaveBeenNthCalledWith(2, 'echo foo --a=123 --b=456', {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env },
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
@ -136,11 +153,17 @@ describe('Command Runner Builder', () => {
|
||||
expect(exec).toHaveBeenCalledTimes(2);
|
||||
expect(exec).toHaveBeenNthCalledWith(1, 'echo', {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env },
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
});
|
||||
expect(exec).toHaveBeenNthCalledWith(2, 'echo foo', {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env },
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
@ -261,11 +284,17 @@ describe('Command Runner Builder', () => {
|
||||
expect(exec).toHaveBeenCalledTimes(2);
|
||||
expect(exec).toHaveBeenNthCalledWith(1, `echo 'Hello World'`, {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env },
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
});
|
||||
expect(exec).toHaveBeenNthCalledWith(2, `echo 'Hello Universe'`, {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env },
|
||||
env: {
|
||||
...process.env,
|
||||
...env(),
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
@ -283,16 +312,73 @@ describe('Command Runner Builder', () => {
|
||||
expect(exec).toHaveBeenCalledTimes(2);
|
||||
expect(exec).toHaveBeenNthCalledWith(1, `echo 'Hello World'`, {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env, FORCE_COLOR: `true` },
|
||||
env: { ...process.env, FORCE_COLOR: `true`, ...env() },
|
||||
});
|
||||
expect(exec).toHaveBeenNthCalledWith(2, `echo 'Hello Universe'`, {
|
||||
maxBuffer: LARGE_BUFFER,
|
||||
env: { ...process.env, FORCE_COLOR: `true` },
|
||||
env: { ...process.env, FORCE_COLOR: `true`, ...env() },
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('cwd', () => {
|
||||
it('should use local installed package when cwd is specified', async () => {
|
||||
const root = dirSync().name;
|
||||
const childFolder = dirSync({ dir: root }).name;
|
||||
const cwd = relative(root, childFolder);
|
||||
const f = fileSync().name;
|
||||
|
||||
const result = await runCommands(
|
||||
{
|
||||
commands: [
|
||||
{
|
||||
command: `yarn init -y`,
|
||||
},
|
||||
{
|
||||
command: `yarn add nx@12.0.0 @nrwl/workspace@12.0.0 @nrwl/cli@12.0.0 --save --registry=https://registry.yarnpkg.com/`,
|
||||
},
|
||||
{
|
||||
command: `echo '{"name":"tmp","scripts":{"nx":"nx"}}' >> package.json`,
|
||||
},
|
||||
{
|
||||
command: `echo '{}' >> nx.json`,
|
||||
},
|
||||
{
|
||||
command: `echo '{}' >> workspace.json`,
|
||||
},
|
||||
{
|
||||
command: `nx --version >> ${f}`,
|
||||
},
|
||||
],
|
||||
parallel: false,
|
||||
cwd,
|
||||
},
|
||||
{ root } as any
|
||||
);
|
||||
expect(result).toEqual(expect.objectContaining({ success: true }));
|
||||
expect(normalize(readFile(f))).toBe('12.0.0');
|
||||
});
|
||||
|
||||
it('should use workspace root package when cwd is not specified', async () => {
|
||||
const root = dirSync().name;
|
||||
const f = fileSync().name;
|
||||
|
||||
const result = await runCommands(
|
||||
{
|
||||
commands: [
|
||||
{
|
||||
command: `nx --version >> ${f}`,
|
||||
},
|
||||
],
|
||||
parallel: true,
|
||||
cwd: process.cwd(),
|
||||
},
|
||||
{ root } as any
|
||||
);
|
||||
expect(result).toEqual(expect.objectContaining({ success: true }));
|
||||
expect(normalize(readFile(f))).toBe(version);
|
||||
});
|
||||
|
||||
it('should run the task in the workspace root when no cwd is specified', async () => {
|
||||
const root = dirSync().name;
|
||||
const f = fileSync().name;
|
||||
|
||||
@ -2,6 +2,7 @@ import { ExecutorContext } from '@nrwl/devkit';
|
||||
import { exec, execSync } from 'child_process';
|
||||
import * as path from 'path';
|
||||
import * as yargsParser from 'yargs-parser';
|
||||
import { env as appendLocalEnv } from 'npm-run-path';
|
||||
|
||||
export const LARGE_BUFFER = 1024 * 1000000;
|
||||
|
||||
@ -227,7 +228,11 @@ function calculateCwd(
|
||||
}
|
||||
|
||||
function processEnv(color: boolean) {
|
||||
const env = { ...process.env };
|
||||
const env = {
|
||||
...process.env,
|
||||
...appendLocalEnv(),
|
||||
};
|
||||
|
||||
if (color) {
|
||||
env.FORCE_COLOR = `${color}`;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user