Как импортировать локальный путь файловой системы вместо node_module в Rollup? - PullRequest
0 голосов
/ 01 марта 2020

По какой-то причине я должен написать код, подобный следующему:

import { something } from '/Users/my-user-name/my-working-dir/my-package/src/somefile.ts';

Скопление видит /Users считает, что это node_modules , но не.

I не могу найти какой-либо плагин для накопительного пакета, связанный с этим.

Теперь я написал плагин для накопительного пакета, чтобы исправить это, но я не писал ни одного плагина раньше, я не знаю, делаю ли я это правильно или неправильно, но вывод именно то, что я хочу:

function fixLocalImport() {
  return {
    name: 'fix-local-import', // this name will show up in warnings and errors
    resolveId(source, importer) {
      if (source.startsWith('/Users')) {
        return source;
      }
      return null; // other ids should be handled as usually
    },
    load(id) {
      return null; // other ids should be handled as usually
    }
  };
}

Я делаю что-то не так?

1 Ответ

1 голос
/ 02 марта 2020

Накопительный пакет не обрабатывает автоматически абсолютные URL-адреса, поскольку они ссылаются на разные вещи в зависимости от контекста (либо root сервера вашего веб-сайта, либо root вашей файловой системы, либо root вашего проект). Написание плагина - лучшее решение здесь, хотя вам не нужно переопределять хук «загрузки».

function fixLocalImport() {
  return {
    name: 'fix-local-import',
    resolveId(source, importer) {
      if (source.startsWith('/Users')) {
        return source;
      }
      return null;
    },
  };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...