Я пытаюсь настроить свой проект на основе MonoRepo, для которого я использовал lerna. js сейчас, насколько я знаю lerna. js работает следующим образом.
Для Dev
- Создайте lerna. json и обновите все пакеты и детали рабочего пространства до пакета. json и lerna. json
- Запустите пряжу или npm клиента как обычно, как вы делаете.
- любая папка внутри пакетов / будет обрабатываться как node_module, так что вы можете напрямую вызывать их.
Теперь мое приложение работает как dev и работает нормально, но когда собирать или переносить мой код es6 с помощью Babel для производства, чем lerna. json не работает правильно следующие проблемы, которые меня смущают о том, как его использовать.
- Должен ли я опубликовать sh все мои пакеты на npm для использования их в производстве?
- запуск
lerna
Bootstrap связывает пакеты, но когда я просматриваю свой пакет внутри node_modules, он все еще содержит код es6 .. из-за этого приложения узла выдает ошибку для использования оператора import, который узел не отменил erstand, если вы не используете экспериментальный флаг.
Ниже приведен пример:
- lerna. json
{
"packages": [
"packages/*"
],
"version": "independent",
"npmClient": "yarn",
"useWorkspaces": true
}
Каталог пакетов
packages/
context/
dyna_modules/
www/
npm scripts
"clean": "lerna clean --yes && rimraf node_modules && rm -rf package-lock.json yarn.lock",
"build::js": "babel ./packages --out-dir ./build/packages/ --ignore node_modules",
"build::nonjs": "babel package.json prisma.yml Dockerfile docker-compose.yml .env --out-dir ./build --copy-files && babel ./packages/routes --out-dir ./build/packages/routes --copy-files",
"build": "rm -rf ./build && mkdir ./build && npm run build::js && npm run build::nonjs",
"dev:nodemon": "DEBUG=*,-babel,-babel:*,-express:*,-nodemon:*,-nodemon,-snapdragon:*,-finalhandler,-follow-redirects nodemon -L --exec babel-node --inspect index.js",
"dev": "yarn dev:nodemon --ignore-engines",
"prestart": "npm run build && lerna bootstrap",
"start": "cd ./build && node ./packages/www/index.js",
Проблема
Запуск запуска пряжи всегда завершается ошибкой при использовании оператора Import. Во время проверки я обнаружил, что все мои packages/modules
внутри node_module
содержат синтаксис es6 вместо транслированного кода.