typescript - Byggfel: amplify kan inte hitta modulen @absolutepath


Jag är en junior frontend-utvecklare.

Jag vill fråga något om amplify.

Jag använde absolut sökväg i min apptjänst eftersom jag måste separera min tjänst från domänen. Innan var min kod som '../../../../......' för lång och jag kunde inte förstå sökvägen. Så, jag måste ändra till absolut sökväg med craco-paketet.

det fungerade absolut i min lokala miljö, men när jag använder Amplify har det ett problem som detta.

./src/App.tsx
 Cannot find module: '@lms/my/directory'. Make sure this package is installed.
You can install this package by running: yarn add '@common/my/directory'
2022-04-04T09:32:11.221Z [WARNING]: error Command failed with exit code 1.
2022-04-04T09:32:11.223Z [INFO]: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
2022-04-04T09:32:11.227Z [ERROR]: !!! Build failed
2022-04-04T09:32:11.228Z [ERROR]: !!! Non-Zero Exit Code detected
2022-04-04T09:32:11.228Z [INFO]: # Starting environment caching...
2022-04-04T09:32:11.229Z [INFO]: # Uploading environment cache artifact...
2022-04-04T09:32:11.294Z [INFO]: # Environment caching completed

och jag sökte efter detta meddelande, jag hittade lösning om 'tsconfig.json', 'craco.config.js'.. men de fungerade inte.

Det är min 'tsconfig.json' och 'craco.config.js'

//tsconfig.json
{
  "extends": "./tsconfig.paths.json",
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noFallthroughCasesInSwitch": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx"
  },
  "include": [
    "src",
    "styles"
  ]
}

//tsconfig.paths.json
{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@common/*": ["src/domain/common/*"],
      "@lms/*": ["src/domain/lms/*"],
      "@membership/*": ["src/domain/membership/*"],
      "@outcomes/*": ["src/domain/outcomes-jobs/*"]
    }
  }
}

//craco.config.js
const CracoAlias = require('craco-alias');

module.exports = {
  plugins: [
    {
      plugin: CracoAlias,
      options: {
        source: 'tsconfig',
        tsConfigPath: 'tsconfig.paths.json'
      }
    }
  ]
};

och min katalogstruktur.

src
  ㄴdomain
      ㄴlms
      ㄴcommon
      ㄴmembership
      ㄴoutcomes

hur kan jag använda Amplify..? åh! det är min Amplify-inställning.

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - yarn install
    build:
      commands:
        - yarn build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

Om jag har fel väg, snälla säg till mig. Tack!