import/no-absolute-path Suspicious
What it does
This rule forbids the import of modules using absolute paths.
Why is this bad?
Node.js allows the import of modules using an absolute path such as /home/xyz/file.js. That is a bad practice as it ties the code using it to your computer, and therefore makes it unusable in packages distributed on npm for instance.
Examples
Examples of incorrect code for this rule:
import f from "/foo";
import f from "/some/path";
var f = require("/foo");
var f = require("/some/path");Examples of correct code for this rule:
import foo from "foo";
import _ from "lodash";
import foo from "./foo";
var _ = require("lodash");
var foo = require("foo");
var foo = require("./foo");Examples of incorrect code for the { amd: true } option:
define("/foo", function(foo) {});
require("/foo", function(foo) {});Examples of correct code for the { amd: true } option:
define("./foo", function(foo) {});
require("./foo", function(foo) {});Configuration
This rule accepts a configuration object with the following properties:
amd
type: boolean
default: false
If set to true, dependency paths for AMD-style define and require calls will be resolved:
/* eslint import/no-absolute-path: ['error', { commonjs: false, amd: true }] */
define(["/foo"], function(foo) {/*...*/}); // reported
require(["/foo"], function(foo) {/*...*/}); // reported
const foo = require("/foo"); // ignored because of explicit `commonjs: false`commonjs
type: boolean
default: true
If set to true, dependency paths for CommonJS-style require calls will be resolved:
var foo = require("/foo"); // reportedesmodule
type: boolean
default: true
If set to true, dependency paths for ES6-style import statements will be resolved:
import foo from "/foo"; // reportedHow to use
To enable this rule in the CLI or using the config file, you can use:
oxlint --deny import/no-absolute-path --import-plugin{
"plugins": ["import"],
"rules": {
"import/no-absolute-path": "error"
}
}