Как импортировать другие файлы, кроме `main`, сгенерированные целью webpack в nodejs? - PullRequest
2 голосов
/ 31 марта 2019

Я работаю над библиотекой javascript, которая построена на webpack.Проект будет построен для двух целей, web и node.Я следовал инструкции по этой ссылке: https://webpack.js.org/concepts/targets/, чтобы настроить несколько целей в веб-пакете.Он отлично работает и генерирует два целевых файла build/test-web.js и build/test-node.js.

Файл build/test-web.js указан в главном атрибуте в package.json, как показано ниже:

"name": "@my-org/test
"main": "build/test-web.js",

, поэтому я могу импортировать этот файл с помощью require('@my-org/test').Интересно, как я могу импортировать другой файл build/test-node.js.Я знаю, что могу импортировать его через require('@my-org/test/build/test-node.js'), но я ищу лучшее решение, чтобы разработчики могли легче импортировать его.

Я проверил эту библиотеку: https://github.com/patrickhulce/generate-export-aliases, но она не работает для scoped package name.

1 Ответ

0 голосов
/ 01 апреля 2019

Замечательная Настройка многоплатформенных пакетов npm Статья доктора Акселя Раушмайера, в которой объясняется, как вы можете достичь того, чего хотите.

Node.js будет искать только поле main в package.json, чтобы найти модуль, поэтому вы должны указать путь к build/test-node.j. Разработчики, которые связывают код браузера (например, Webpack, Rollup), сначала дополнительно посмотрят на поле browser (если target: web), где вы должны указать путь к build/test-web.j. Итак, ваш package.json должен выглядеть так:

{
    ...
    "main": "build/test-node.j",
    "browser": "build/test-web.j",
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...