fix(nextjs): remove tsconfig.app.json (#4970)
This commit is contained in:
parent
2527dc629e
commit
df54518f33
@ -314,6 +314,34 @@ describe('Next.js Applications', () => {
|
|||||||
checkE2E: true,
|
checkE2E: true,
|
||||||
});
|
});
|
||||||
}, 180000);
|
}, 180000);
|
||||||
|
|
||||||
|
it('should fail the build when TS errors are present', async () => {
|
||||||
|
const appName = uniq('app');
|
||||||
|
|
||||||
|
runCLI(
|
||||||
|
`generate @nrwl/next:app ${appName} --no-interactive --style=@emotion/styled`
|
||||||
|
);
|
||||||
|
|
||||||
|
updateFile(
|
||||||
|
`apps/${appName}/pages/index.tsx`,
|
||||||
|
`
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
export function Index() {
|
||||||
|
let x = '';
|
||||||
|
// below is an intentional TS error
|
||||||
|
x = 3;
|
||||||
|
return <div />;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Index;
|
||||||
|
`
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(() => runCLI(`build ${appName}`)).toThrowError(
|
||||||
|
`Type error: Type 'number' is not assignable to type 'string'.`
|
||||||
|
);
|
||||||
|
}, 120000);
|
||||||
});
|
});
|
||||||
|
|
||||||
async function checkApp(
|
async function checkApp(
|
||||||
|
|||||||
@ -47,7 +47,6 @@ describe('app', () => {
|
|||||||
it('should generate files', async () => {
|
it('should generate files', async () => {
|
||||||
await applicationGenerator(tree, { name: 'myApp', style: 'css' });
|
await applicationGenerator(tree, { name: 'myApp', style: 'css' });
|
||||||
expect(tree.exists('apps/my-app/tsconfig.json')).toBeTruthy();
|
expect(tree.exists('apps/my-app/tsconfig.json')).toBeTruthy();
|
||||||
expect(tree.exists('apps/my-app/tsconfig.app.json')).toBeTruthy();
|
|
||||||
expect(tree.exists('apps/my-app/pages/index.tsx')).toBeTruthy();
|
expect(tree.exists('apps/my-app/pages/index.tsx')).toBeTruthy();
|
||||||
expect(tree.exists('apps/my-app/specs/index.spec.tsx')).toBeTruthy();
|
expect(tree.exists('apps/my-app/specs/index.spec.tsx')).toBeTruthy();
|
||||||
expect(tree.exists('apps/my-app/pages/index.module.css')).toBeTruthy();
|
expect(tree.exists('apps/my-app/pages/index.module.css')).toBeTruthy();
|
||||||
@ -286,7 +285,7 @@ describe('app', () => {
|
|||||||
],
|
],
|
||||||
"parserOptions": Object {
|
"parserOptions": Object {
|
||||||
"project": Array [
|
"project": Array [
|
||||||
"apps/my-app/tsconfig.*?.json",
|
"apps/my-app/tsconfig(.*)?.json",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
"rules": Object {},
|
"rules": Object {},
|
||||||
@ -351,9 +350,9 @@ describe('app', () => {
|
|||||||
const tsConfig = readJson(tree, 'apps/my-app/tsconfig.json');
|
const tsConfig = readJson(tree, 'apps/my-app/tsconfig.json');
|
||||||
expect(tsConfig.compilerOptions.allowJs).toEqual(true);
|
expect(tsConfig.compilerOptions.allowJs).toEqual(true);
|
||||||
|
|
||||||
const tsConfigApp = readJson(tree, 'apps/my-app/tsconfig.app.json');
|
const tsConfigApp = readJson(tree, 'apps/my-app/tsconfig.json');
|
||||||
expect(tsConfigApp.include).toContain('**/*.js');
|
expect(tsConfigApp.include).toContain('**/*.js');
|
||||||
expect(tsConfigApp.exclude).toContain('**/*.spec.js');
|
expect(tsConfigApp.exclude).not.toContain('**/*.spec.js');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,2 +1,13 @@
|
|||||||
/// <reference types="next" />
|
/// <reference types="next" />
|
||||||
/// <reference types="next/types/global" />
|
/// <reference types="next/types/global" />
|
||||||
|
<% if (style === 'less') { %>
|
||||||
|
declare module '*.module.less' {
|
||||||
|
const classes: { readonly [key: string]: string };
|
||||||
|
export default classes;
|
||||||
|
}
|
||||||
|
<% } else if (style === 'styl') { %>
|
||||||
|
declare module '*.module.styl' {
|
||||||
|
const classes: { readonly [key: string]: string };
|
||||||
|
export default classes;
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "./tsconfig.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"outDir": "<%= offsetFromRoot %>dist/out-tsc",
|
|
||||||
"types": ["node", "jest"]
|
|
||||||
},
|
|
||||||
"exclude": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js", "**/*.spec.jsx"],
|
|
||||||
"include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "next-env.d.ts"]
|
|
||||||
}
|
|
||||||
@ -5,18 +5,13 @@
|
|||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"allowSyntheticDefaultImports": true,
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"types": ["node", "jest"],
|
||||||
"strict": false,
|
"strict": false,
|
||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true
|
"isolatedModules": true
|
||||||
},
|
},
|
||||||
"files": [],
|
"include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "next-env.d.ts"],
|
||||||
"include": [],
|
|
||||||
"references": [
|
|
||||||
{
|
|
||||||
"path": "./tsconfig.app.json"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"exclude": ["node_modules"]
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,14 @@ export async function addLinting(
|
|||||||
updateJson(
|
updateJson(
|
||||||
host,
|
host,
|
||||||
joinPathFragments(options.appProjectRoot, '.eslintrc.json'),
|
joinPathFragments(options.appProjectRoot, '.eslintrc.json'),
|
||||||
() => reactEslintJson
|
() => {
|
||||||
|
if (reactEslintJson.overrides?.[0].parserOptions?.project) {
|
||||||
|
reactEslintJson.overrides[0].parserOptions.project = [
|
||||||
|
`${options.appProjectRoot}/tsconfig(.*)?.json`,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return reactEslintJson;
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,6 +52,5 @@ export function createApplicationFiles(host: Tree, options: NormalizedSchema) {
|
|||||||
if (options.js) {
|
if (options.js) {
|
||||||
host.delete(`${options.appProjectRoot}/index.d.ts`);
|
host.delete(`${options.appProjectRoot}/index.d.ts`);
|
||||||
toJS(host);
|
toJS(host);
|
||||||
updateTsConfigsToJs(host, { projectRoot: options.appProjectRoot });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user