Permalink
Cannot retrieve contributors at this time
54 lines (36 sloc)
1.45 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/node_modules/eslint-plugin-import/docs/rules/no-absolute-path.md
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# import/no-absolute-path | |
🔧 This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). | |
<!-- end auto-generated rule header --> | |
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. | |
This rule forbids the import of modules using absolute paths. | |
## Rule Details | |
### Fail | |
```js | |
import f from '/foo'; | |
import f from '/some/path'; | |
var f = require('/foo'); | |
var f = require('/some/path'); | |
``` | |
### Pass | |
```js | |
import _ from 'lodash'; | |
import foo from 'foo'; | |
import foo from './foo'; | |
var _ = require('lodash'); | |
var foo = require('foo'); | |
var foo = require('./foo'); | |
``` | |
### Options | |
By default, only ES6 imports and CommonJS `require` calls will have this rule enforced. | |
You may provide an options object providing true/false for any of | |
- `esmodule`: defaults to `true` | |
- `commonjs`: defaults to `true` | |
- `amd`: defaults to `false` | |
If `{ amd: true }` is provided, dependency paths for AMD-style `define` and `require` | |
calls will be resolved: | |
```js | |
/*eslint import/no-absolute-path: [2, { commonjs: false, amd: true }]*/ | |
define(['/foo'], function (foo) { /*...*/ }) // reported | |
require(['/foo'], function (foo) { /*...*/ }) // reported | |
const foo = require('/foo') // ignored because of explicit `commonjs: false` | |
``` |