tsc-alias
tsc-alias copied to clipboard
Upgrading from 1.6.4 to 1.6.5 breaks
Hi, thank you so much for this amazing lib :)
Everything works fine when using 1.6.4 I get tsc-alias info: 94 files were affected!
But when I switch to 1.6.5 I get tsc-alias info: 0 files were affected! (I don't get any errors)
It seems like this commit broke my config https://github.com/justkey007/tsc-alias/commit/0abf049bc8021518bd5e1e6afc63dcc077a0f885
My tsconfig is
{
"extends": "../../tsconfig.packages.json",
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist",
"baseUrl": "../..",
"paths": {
"@utils/*": [
"packages/server/src/utils/*"
],
"@generated/*": [
"packages/server/src/generated/*"
],
"@resolvers/*": [
"packages/server/src/resolvers/*"
],
"@gqlTypes/*": [
"packages/server/src/types/*"
],
"@context": [
"packages/server/src/context.ts"
],
"@c4f-platform/*": [
"packages/*/"
]
},
"allowJs": false,
"target": "ES6",
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"module": "commonjs",
"sourceMap": true,
"listEmittedFiles": false,
"alwaysStrict": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strictNullChecks": true,
"lib": [
"esnext"
],
"composite": true,
"declaration": true,
"declarationMap": true
},
"include": [
"lib/**/*",
"bin/*",
"tests/*.test.*",
"src/**/*",
"src/**/*.json"
],
"exclude": [
"node_modules"
],
"references": []
}
I don't understand why the changes broke the compilation based on my config. Let me know if you need more info on my config :)
Have a nice day
@ulysset can you provide us the console output when running with -r debugger.js? Working version and nonworking version?
debugger.js file placed next to tsconfig.json.
With the debugger.js file contents being:
const util = require('util');
let loggedConfig = true;
exports.default = ({ orig, file, config }) => {
if (loggedConfig) {
console.log(util.inspect(config, {showHidden: false, depth: null, colors: true}));
loggedConfig = false;
}
console.log(orig);
console.log(file);
return orig;
};
Thank you @raouldeheer for the quick answer :) Here's a sample of each console output.
Working version
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
require("tslib")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("nexus")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("../../shared/cris/scorePerHorizonAndScenario")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("../../../resolvers/sovereign/cris/sovereignCrisScorePerHazardResolver")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("../../../resolvers/sovereign/cris/sovereignCrisScorePerHorizonAndScenarioResolver")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("../../../resolvers/sovereign/cris/sovereignCrisTopHazardResolver")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/ImpactByScope.d.ts
from '../../../generated/nexus'
/Users/user/folder/project/packages/server/dist/types/Portfolio/cris/index.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/Portfolio/cris/index.d.ts
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.js
require(".prisma/biaClient")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.js
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/Location.d.ts
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/bia/ImpactByScope.js
require("./EnumTypes")
/Users/user/folder/project/packages/server/dist/types/shared/bia/ImpactByScope.js
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/bia/Location.js
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.js
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.d.ts
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/cris/scorePerHorizonAndScenario.js
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/scorePerHorizonAndScenario.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/scorePerHorizonAndScenario.d.ts
require("nexus")
/Users/user/folder/project/packages/server/dist/types/Portfolio/bia/PortfolioPressure.js
tsc-alias info: 94 files were affected!
Non-working
require("nexus")
/Users/user/folder/project/packages/server/dist/types/Portfolio/bia/SectorsByPressurePortfolio.js
from '@generated/nexus'
/Users/user/folder/project/packages/server/dist/types/Portfolio/cris/index.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/Portfolio/cris/index.d.ts
require("tslib")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("nexus")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("../../shared/cris/scorePerHorizonAndScenario")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("@resolvers/sovereign/cris/sovereignCrisScorePerHazardResolver")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("@resolvers/sovereign/cris/sovereignCrisScorePerHorizonAndScenarioResolver")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
require("@resolvers/sovereign/cris/sovereignCrisTopHazardResolver")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.js
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/Sovereign/cris/index.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/ImpactByScope.d.ts
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/bia/ImpactByScope.js
require("./EnumTypes")
/Users/user/folder/project/packages/server/dist/types/shared/bia/ImpactByScope.js
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.d.ts
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/bia/Location.js
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/bia/Location.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/scorePerHorizonAndScenario.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/scorePerHorizonAndScenario.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.d.ts
import("nexus/dist/core")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.d.ts
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/cris/EnumTypes.js
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/cris/scorePerHorizonAndScenario.js
require("nexus")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.js
require(".prisma/biaClient")
/Users/user/folder/project/packages/server/dist/types/shared/bia/EnumTypes.js
tsc-alias info: 0 files were affected!
@ulysset can you try:
tsc-alias -r debugger.js > working.txt
To get the full output in a file. It seems the log is too big for console.
Yes indeed, here you go: not-working.txt working.txt
same problem for me
@ulysset @Ge-yuan-jun I haven't been able to reproduce this bug. Could you setup a demo repo with the reproducible bug?
@raouldeheer sorry, I'm having trouble reproducing it although I still have the bug :( @Ge-yuan-jun can you try it?
This just hit me in the face in production. For some reason it ignored the alias mappings to a top level folder called /events, downgrading to v1.6.3 fixes the issue.
Don't know if it's related, but this bug is happening to me when the calculated rootDir differs from the baseUrl. Equalizing both properties (when possible) worked for me.
@fsmaia thanks for the suggestion. My rootDir and baseUrl do differ but when equalizing both properties it sadly didn't work :(
But I think that our problem might be because we are working in a monorepo.
Don't know if it's related, but this bug is happening to me when the calculated
rootDirdiffers from thebaseUrl. Equalizing both properties (when possible) worked for me.
This fixes our issue!
{
"extends": "@x/tsconfig/node.json",
"include": ["**/*.ts"],
"compilerOptions": {
"outDir": "./dist/",
"rootDir": "../../",
"baseUrl": "../../",
"paths": {
"src/*": ["./apps/jobs/src/*"],
"@x/node-utils": ["./packages/node-utils/src/index.ts"],
"@x/node-utils/*": ["./packages/node-utils/src/*"]
}
},
"exclude": ["node_modules"]
}
Basically baseUrl and rootDir is the same but we reference the paths from the root and it's working fine :)
@justkey007 This issue could be marked as stale