📔 Дозволи модулів

Parcel (v1.7.0 і вище) підтримує декілька стратегій дозволу модуля з коробки, так що вам не доведеться мати справу з нескінченними відносними шляхами ../../.

Примітки:

Абсолютний шлях

/foo буде foo по відношенню до project root.

~ Tilde Paths

~/foo буде означати foo відносно найближчого package root або, якщо не знайдено, project root.

Aliasing

Псевдоніми підтримуються через поле alias у package.json.

Цей приклад псевдонімів react в preact і деякий місцевий користувацький модуль, в якому немає node_modules.

// package.json
{
  "name": "some-package",
  "devDependencies": {
    "parcel-bundler": "^1.7.0"
  },
  "alias": {
    "react": "preact-compat",
    "react-dom": "preact-compat",
    "local-module": "./custom/modules"
  }
}

Уникайте використання будь-яких спеціальних символів у ваших псевдонімах, оскільки деякі з них можуть використовуватися Parcel та іншими засобами сторонніх інструментів або розширень. Наприклад:

Ми радимо бути чітко визначеними вашими псевдонімами, тому будь ласка вкажіть розширення файлів, інакше Parcel доведеться вгадати. Дивіться JavaScript Named Exports для прикладу цього.

Інші умови

JavaScript Named Exports

Списки псевдонімів застосовуються до багатьох типів ресурсів і не підтримують спеціальне відображення JavaScript-експорту. Якщо ви хочете вказати назву експорту JS, ви можете зробити це:

// package.json
{
  "name": "some-package",
  "alias": {
    "ipcRenderer": "./electron-ipc.js" // вкажіть розширення файлу
  }
}

і повторно експортуйте назву експорту в псевдонімний файл:

// electron-ipc.js
module.exports = require('electron').ipcRenderer

TypeScript ~ Resolution

TypeScript повинен знати про те, що ви використовуєте ~ модуль або відображення псевдоніма. Будь ласка, зверніться до TypeScript Module Resolution docs для додаткової інформації.

// tsconfig.json
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "~*": ["./src/*"]
    }
  }
}

Monorepo Resolution

Це рекомендовані звичаї з Monorepo в цей час:

Рекомендується використання:

Неприйнятне використання:

Якщо ви є користувачем monorepos і хотіли б внести свій внесок у ці рекомендації, будь ласка, наведіть приклади репозиторіїв при відкритті питань для підтримки обговорення.

Help us improve the docs

If something is missing or not entirely clear, please file an issue on the website repository or edit this page.