What is case-sensitive-paths-webpack-plugin?
The case-sensitive-paths-webpack-plugin is a Webpack plugin that ensures that the file paths you use in your project are case-sensitive. This is particularly useful when developing on an operating system like Windows, which is not case-sensitive, but deploying to an environment that is, such as Linux. The plugin helps prevent runtime errors in production by ensuring that all imports and requires are case-correct.
What are case-sensitive-paths-webpack-plugin's main functionalities?
Enforce case-sensitive paths
This feature ensures that all paths in your Webpack project are used in a case-sensitive manner. If a file is imported with a path that does not match the exact case of the actual file path, the plugin will cause the build to fail, alerting you to the issue.
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
module.exports = {
plugins: [
new CaseSensitivePathsPlugin()
]
};
Other packages similar to case-sensitive-paths-webpack-plugin
force-case-sensitivity-webpack-plugin
This is another Webpack plugin that serves a similar purpose to case-sensitive-paths-webpack-plugin. It forces the resolution of modules to be case-sensitive. It is very similar in functionality but might differ slightly in implementation details or additional options provided.
Case Sensitive Paths - Webpack Plugin
This Webpack plugin enforces the entire path of all required modules match the exact case of the actual path on disk.
Using this plugin helps alleviate cases where developers working on OSX, which does not follow strict path case sensitivity,
will cause conflicts with other developers or build boxes running other operating systems which require correctly cased paths.
Previous iterations on this same idea provide the basis for this plugin, but unfortunately do not properly check case on
the entire path. This plugin fixes that. Example output:
ERROR in ./src/containers/SearchProducts.js
Module not found: Error: [CaseSensitivePathsPlugin] /Users/example/yourproject/src/components/searchProducts/searchproducts.js
does not match the corresponding path on disk /Users/example/yourproject/src/components/searchproducts
@ ./src/containers/SearchProducts.js 9:22-84
Install
npm install --save-dev case-sensitive-paths-webpack-plugin
Usage
var CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
var webpackConfig = {
plugins: [
new CaseSensitivePathsPlugin()
]
}
Want more information? Pass {debug: true}
to the plugin like so:
new CaseSensitivePathsPlugin({debug: true})
It will output every directory it reads, as well as a sum total of filesystem operations.
This is mostly useful for internal debugging of the plugin, but if you find it useful, more power to you.
Demo
Check the /demo
directory for a working example of the plugin in action, with tests demonstrating the effect of the plugin. See /demo/README.md
for more.
Thanks & Credit
License