{"id":20325,"library":"prettier-loader","title":"prettier-loader","description":"Webpack loader that auto-formats source code with Prettier during the build process. Current stable version is 3.3.0, with ongoing maintenance. It integrates seamlessly with webpack-dev-server to format on every save, supporting Prettier configuration files and ignore directives. Unlike pre-commit hooks or CLI scripts, this loader ensures consistent formatting without additional watchers or developer setup. Requires webpack >= 2 and prettier >= 1.6.","status":"active","version":"3.3.0","language":"javascript","source_language":"en","source_url":"https://github.com/iamolegga/prettier-loader","tags":["javascript","webpack","prettier"],"install":[{"cmd":"npm install prettier-loader","lang":"bash","label":"npm"},{"cmd":"yarn add prettier-loader","lang":"bash","label":"yarn"},{"cmd":"pnpm add prettier-loader","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency - the formatting engine","package":"prettier","optional":false},{"reason":"peer dependency - the bundler","package":"webpack","optional":false}],"imports":[{"note":"Loader is used in webpack config, not typically imported directly. Common mistake is using named import.","wrong":"import { prettier-loader } from 'prettier-loader'","symbol":"prettier-loader","correct":"import PrettierLoader from 'prettier-loader'"},{"note":"Loader must be referenced as string in webpack rules.","wrong":"use: 'prettier-loader' without options","symbol":"use in webpack config","correct":"use: { loader: 'prettier-loader', options: {...} }"},{"note":"Loader is resolved by webpack; not required directly.","wrong":"require('prettier-loader') in config","symbol":"loader in Rule","correct":"module.exports = { module: { rules: [ { test: /\\.jsx?$/, use: { loader: 'prettier-loader' } } ] } }"}],"quickstart":{"code":"// webpack.config.js\nmodule.exports = {\n  module: {\n    rules: [\n      {\n        test: /\\.jsx?$/,\n        use: {\n          loader: 'prettier-loader',\n          options: {\n            parser: 'babel',\n            semi: true,\n            singleQuote: true\n          }\n        },\n        exclude: /node_modules/\n      }\n    ]\n  }\n};","lang":"javascript","description":"Minimal webpack configuration to auto-format JavaScript files with Prettier using the loader."},"warnings":[{"fix":"Use exclude patterns or only apply to specific paths.","message":"Loader may slow down build on large codebases due to formatting overhead.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Upgrade to webpack 2+.","message":"Webpack 1 is not supported; version requirement changed from webpack >= 2 to webpack >= 2 (always been).","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use emitErrors or emitWarnings options to control behavior.","message":"Loader runs on every file match; if prettier fails, the build may break.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Rely on Prettier config files or pass options directly.","message":"Options like 'configFile' may be deprecated in favor of Prettier's own config resolution.","severity":"deprecated","affected_versions":">=3.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install prettier-loader prettier --save-dev'","cause":"Missing installation of prettier-loader or prettier peer dependency.","error":"Module not found: Error: Can't resolve 'prettier-loader'"},{"fix":"Run 'npm install prettier --save-dev'","cause":"Prettier peer dependency not installed.","error":"Error: Cannot find module 'prettier'"},{"fix":"Check the options passed to the loader; they must match Prettier's API (e.g., 'semi' not 'semicolon').","cause":"Invalid option name or type passed to loader options.","error":"ValidationError: Invalid options object. Prettier Loader has been initialized using an options object that does not match the API schema."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}