Shakapacker v9 includes TypeScript support, providing type safety and better IDE experience for your webpack configurations.
// webpack.config.ts
import { generateWebpackConfig } from "shakapacker"
import type { Configuration } from "webpack"
const config: Configuration = generateWebpackConfig({
// Your config with full type safety
})
export default config// webpack.config.js
const { generateWebpackConfig } = require("shakapacker")
/** @type {import('webpack').Configuration} */
const config = {
// Still get autocomplete in JS files!
}
module.exports = generateWebpackConfig(config)- Compile-time error detection - Catch config errors before runtime
- IDE autocomplete - Full IntelliSense for all options
- Type safety - Prevents 85-100% of common configuration errors
- No breaking changes - Fully backward compatible
- No migration required - Existing JavaScript configs continue to work
- Optional TypeScript - Use it only if you want the benefits
- Gradual adoption - Start with JSDoc comments, move to TypeScript later
- Install TypeScript extension (built-in)
- Set
"typescript.tsdk": "node_modules/typescript/lib"in settings
- Enable TypeScript service in Settings → Languages & Frameworks → TypeScript
import { generateWebpackConfig, env } from "shakapacker"
const config = generateWebpackConfig({
optimization: {
minimize: env.isProduction
}
})import { generateRspackConfig } from "shakapacker/rspack"
import type { RspackOptions } from "@rspack/core"
const config: RspackOptions = {
// Rspack-specific config
}
export default generateRspackConfig(config)Cannot find module 'shakapacker'
/// <reference types="shakapacker" />Type errors with custom loaders
use: [require.resolve("custom-loader") as any]