tsc-alias icon indicating copy to clipboard operation
tsc-alias copied to clipboard

Upgrading from 1.6.4 to 1.6.5 breaks

Open ulysset opened this issue 3 years ago • 11 comments

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 avatar Mar 31 '22 09:03 ulysset

@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;
};

raouldeheer avatar Mar 31 '22 09:03 raouldeheer

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 avatar Mar 31 '22 09:03 ulysset

@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.

raouldeheer avatar Mar 31 '22 09:03 raouldeheer

Yes indeed, here you go: not-working.txt working.txt

ulysset avatar Mar 31 '22 10:03 ulysset

same problem for me

Ge-yuan-jun avatar Apr 11 '22 13:04 Ge-yuan-jun

@ulysset @Ge-yuan-jun I haven't been able to reproduce this bug. Could you setup a demo repo with the reproducible bug?

raouldeheer avatar May 11 '22 11:05 raouldeheer

@raouldeheer sorry, I'm having trouble reproducing it although I still have the bug :( @Ge-yuan-jun can you try it?

ulysset avatar May 11 '22 13:05 ulysset

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.

j-mendez avatar May 18 '22 16:05 j-mendez

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 avatar Aug 10 '22 21:08 fsmaia

@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.

ulysset avatar Aug 10 '22 21:08 ulysset

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.

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 :)

semoal avatar Aug 17 '22 10:08 semoal

@justkey007 This issue could be marked as stale

raouldeheer avatar Nov 05 '22 21:11 raouldeheer