build icon indicating copy to clipboard operation
build copied to clipboard

Type imports from `@netlify/build` fail with TS 4.x

Open SferaDev opened this issue 1 year ago • 0 comments

Describe the bug

After updating to @netlify/[email protected] imports began failing.

import type { OnPreBuild } from '@netlify/build';

export const onPreBuild: OnPreBuild = async function ({ netlifyConfig }) {
    // Your plugin code
}

Steps to reproduce

  1. Use TypeScript 4.x (works with TS 5.x)
  2. Update from 29.20.6 to 29.20.7
  3. Run tsc

Configuration

tsconfig:

{
  "compilerOptions": {
    "target": "es2020",
    "lib": ["esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noFallthroughCasesInSwitch": true,
    "module": "es2020",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": false,
    "outDir": "dist",
    "declaration": true
  },
  "include": ["src"],
  "exclude": ["node_modules"]
}

Logs

  Error: src/index.ts(1,15): error TS2614: Module '"@netlify/build"' has no exported member 'OnPreBuild'. Did you mean to use 'import OnPreBuild from "@netlify/build"' instead?
  Error: src/index.ts(9,57): error TS7031: Binding element 'netlifyConfig' implicitly has an 'any' type.

SferaDev avatar Aug 30 '23 10:08 SferaDev