#node.js #webpack
#node.js #webpack
Вопрос:
Я работаю над библиотекой javascript, созданной webpack
. Проект будет создан для двух целевых программ, web
и node
. Я следовал инструкциям по этой ссылке:https://webpack.js.org/concepts/targets / для настройки нескольких целевых объектов в webpack. Это работает нормально и генерирует два целевых файла build/test-web.js
и build/test-node.js
.
Файл build/test-web.js
указан в атрибуте main в 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:
Есть отличная статья доктора Акселя Раушмайера о настройке многоплатформенных пакетов npm, в которой объясняется, как вы можете достичь желаемого.
Node.js для разрешения модуля будет просмотрено только main
поле package.json
, поэтому вы должны указать туда путь к build/test-node.j
. Разработчики, которые объединяют код браузера (т.Е. Webpack, Rollup), сначала дополнительно проверят browser
поле (if target: web
), где вы должны указать путь к своему build/test-web.j
. Итак, ваш package.json должен выглядеть следующим образом:
{
...
"main": "build/test-node.j",
"browser": "build/test-web.j",
...
}