Closed TFK70 closed 3 years ago
@TFK70 что значит сбилдить? Что подразумевается?
@gochicus ты уже пробовал устанавливать другие плагины?
@TFK70 Да, все, кроме @atls/plugin-essentials. Вот так выгдялит в .yarnrc.yml:
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs spec: "@yarnpkg/plugin-version"
- path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs spec: "@yarnpkg/plugin-typescript"
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs spec: "@yarnpkg/plugin-workspace-tools"
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs spec: "@yarnpkg/plugin-interactive-tools"
А последнее я про билды несколько не понял.
@gochicus Отлично, теперь если ты обратишь внимание на path - то он ссылается на cjs файл (который как бы и является плагином). Через yarn plugin import у тебя сделать ничего не получится, он будет приписывать намспейс @yarnpkg, а прямой ссылки на js/cjs файл у тебя нет. Соответственно чтобы у тебя заработал atls плагин тебе необходимо получить его js (который добывается путем билда https://github.com/atls/tools/tree/master/yarn/plugin-essentials), а потом указать до него путь в .yarnrc
Плагин разумеется должен лежать там же, где и остальные: .yarn/plugins/@atls
@TFK70 перекинул всю папку в отдельный проект, пытаюсь подтянуть модули атлантиса для билда через ярн и получаю стандартную ошибку, что модуль не найден.
error An unexpected error occurred: "https://registry.yarnpkg.com/@atls%2fyarn-plugin-checks: Not found".
@gochicus я говорил что тебе нужно склонировать репозиторий essentials собирает в себе несколько других плагинов, откуда он их возьмет тогда если у тебя только директория с essentials?
@TFK70 а как понять какие @types нужны вообще? Вот у меня есть ошибка:
Type Error: Cannot read property 'map' of undefined Occurred while linting /home/aleksandr/Desktop/project/frontend-study-gochicus/practice/web-diary/webpack.config.ts:1 Occurred while linting /home/aleksandr/Desktop/project/frontend-study-gochicus/practice/web-diary/webpack.config.ts:1 at Object.exports.traverse (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/@atlantis-lab/prettier-plugin-import-sort/dist/utils.js:7:46) at Object.print (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/@atlantis-lab/prettier-plugin-import-sort/dist/plugin.js:29:32) at callPluginPrintFunction (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/prettier/index.js:14958:21) at mainPrintInternal (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/prettier/index.js:14896:17) at mainPrint (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/prettier/index.js:14878:14) at /home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/prettier/index.js:47471:21 at AstPath.each (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/prettier/index.js:14653:7) at printStatementSequence (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/prettier/index.js:47463:8) at printBody$1 (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/prettier/index.js:47597:10) at printBlockBody$1 (/home/aleksandr/Desktop/project/frontend-study-gochicus/node_modules/prettier/index.js:47763:16)
Я пробовал добавлять разные типы, сейчас выглядит так:
packageExtensions: "webpack@*": dependencies: "@types/webpack": "5.28.0" "@types/webpack-dev-server": "^3.11.2" "@types/html-webpack-plugin": "3.2.6" "@types/html-webpack-template": "6.0.6" "@types/webpack-env": "1.16.2" "@types/webpack-sources": "2.1.1"
И всё равно не работает.
@gochicus понять очень просто: нужно просто внимательно читать текст ошибки (причем это нужно делать всегда)
@types помогают когда вылезает TypeError внутри сторонней либы, там нужно посмотреть на какой метод (или что угодно) он ругается, посмотреть из какой либы этот метод, и установить типы этой либы в либу где происходит TypeError. Например если react
внутри себя использует nanoid
и при тайпчеках внутри реакта появляется TypeError в отношении метода nanoid
- то тебе нужны тайп дефинишены для наноида, их ты устанавливаешь в реакт, тк ошибка там и произошла
У тебя ошибка происходит внутри твоего же пакета. Причем map
, насколько ты знаешь, это не метод сторонней либы, он встроенный, жсный. Говорит что у undefined метода map нет. Соответственно массив, у которого ты вызываешь метод map внутри твоего пакета приходит в виде undefined, там и ищи ошибку. Ставь консоль логи и дебажь
@TFK70
./practice/web-diary/fragments/post-сontrols/src/PostControls.tsx:20:6 Type error: JSX element type 'Row' does not have any construct or call signatures. 18 | const [postData, setPostData] = usePostData() 19 | return ( 20 |
| ^ 21 |
22 | 23 | <Input
Добавление @types/react в пакеты фрагментов не разрешают приведенную ошибку, в то время как для ui пакетов такое решение работает. В чём может быть проблема?
@gochicus ошибка все еще на уровне типов, но одного лога об ошибке мало, здесь основную роль играет окружение ты гуглил ошибку?
@TFK70 Да, гуглил, понятного объяснения что это может быть не нашел.
@gochicus установи @types/node@14 и @types/react в корневой package
@TFK70 всё ещё не запускается, через yarn diary, текст ошибки приведен. Тайпчеки проверил, ошибка не связана с ними. В web-diary всё поправил, некоторые папки, не связанные с web-diary, временно удалил для ускорения тестирования. Ошибок типов нет, но вот эта ошибка всё так же осталась. Есть ещё идеи с чем может быть связано?
[webpack-cli] Failed to load '/home/aleksandr/Desktop/project/frontend-study-gochicus/practice/web-diary/webpack.config.ts' config [webpack-cli] Error: The specified module doesn't seem to exist on the filesystem at getModuleLocator (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/pnp-webpack-plugin-npm-1.6.4-c497046afc-39a484182f.zip/node_modules/pnp-webpack-plugin/index.js:16:11) at Object.moduleLoader (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/pnp-webpack-plugin-npm-1.6.4-c497046afc-39a484182f.zip/node_modules/pnp-webpack-plugin/index.js:140:23) at Object.
(/home/aleksandr/Desktop/project/frontend-study-gochicus/practice/web-diary/webpack.config.ts:51:30) at Module._compile (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-b56f83d9ff.zip/node_modules/v8-compile-cache/v8-compile-cache.js:192:30) at Module._compile (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/pirates-npm-4.0.1-377058e8fc-21604008c3.zip/node_modules/pirates/lib/index.js:99:24) at Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Object.newLoader [as .ts] (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/pirates-npm-4.0.1-377058e8fc-21604008c3.zip/node_modules/pirates/lib/index.js:104:7) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.externalmodule.Module._load (/home/aleksandr/Desktop/project/frontend-study-gochicus/.pnp.js:28786:14) at Module.require (internal/modules/cjs/loader.js:952:19)
@gochicus Пока сделай коммит, продолжай резолвить тайпчеки если еще остались и почини хаски если еще не починил. За запуск приложения будет отвечать actl renderer https://github.com/atls/tools/tree/master/actl/actl-renderer
@TFFOE насчет хаски не совсем понял, что с ним сделать то нужно? он просто когда ярном тянется, там что-то происходит, ошибка и всё.
@gochicus ну так это и надо починить хаски же не должен падать с ошибкой?
@TFK70 Зависимости выглядят вот так.
"devDependencies": { "@types/react": "^17.0.3", "@types/react-intl": "^3.0.0", "babel-plugin-react-intl": "^8.2.25", "html-webpack-plugin": "^5.3.1", "html-webpack-template": "^6.2.0", "pnp-webpack-plugin": "^1.6.4", "styled-system": "^5.1.5", "typescript": "^4.3.5", "webpack": "^5.26.3", "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.11.2" }, "dependencies": { "react": "^17.0.1", "react-dom": "^17.0.2", "react-intl": "^5.13.5" } }
При выполнении команды yarn diary приложение начинает собираться, но на определенном этапе происходит ошибка:
Module parse failed: Unexpected token (6:16)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| import App from './App'
|
> ReactDOM.render(<App />, document.getElementById('root'))
|
Что касается actl format то, при вводе команды yarn format (actl format в scripts) не происходит ничего, никакого текста, никаких ошибок, ничего. При этом yarn lint работает нормально, выводит список ошибок.
@gochicus чтобы не было этой ошибки когда запускаешь yarn
:
Удали в .yarnrc секцию plugins, сделай yarn, и потом добавляй их заново через yarn plugin import
Для того чтобы приложение работало с next так же необходимо сохранять определенную структуру проекта, тк там уже есть встроенный вебпак. Вполне можно пройти небольшой гайд чтобы понять основные концепции, займет не более 1.5-2 часов, но вообще они все вполне подробно описаны тут (в левом сайдбаре Basic Features
)
Читать после ознакомление с общими концепциями next
Тут нам понадобится файл next.config.js
Проблема - вебпак некста из коробки не сможет резолвить пути до воркспейсов Решение - через next.config.js внести правки в конфиг вебпака, самим добавив для плагина next-babel-loader пути до воркспейсов Инструмент - https://github.com/atls/nextjs/tree/master/packages/next-config-with-pnp-workspaces Использование:
const { withWorkspaces } = require('@atls/next-config-with-pnp-workspaces')
const withPlugins = require('next-compose-plugins')
module.exports = withPlugins([withWorkspaces])
@gochicus Чтобы не было проблем с plugin-essentials необходимо перейти на yarn версии 3.0.0-rc.5:
yarn set version 3.0.0-rc.5
yarn plugin import workspace-tools@3.0.0-rc.5
(для совместимости с новой версией)
Если на каком-либо плагине будет 404 (Not found) - просто yarn plugin import <pluginName>
"lint": "actl lint"
и проверить работоспособность через yarn lint
или любую другую команду. Если команда отработала - все в порядке, можно продолжать работу. Если нет - отпиши сюда с логом@TFK70 проблемы с плагином, то что ты описал выше с обновлением верссии сделал, проблем нет, команда линт работает. Однако при попытке сборки проекта получаю вот такое сообщение:
Usage Error: This plugin cannot access the package referenced via typanion which is neither a builtin, nor an exposed entry (when initializing @yarnpkg/plugin-workspace-tools, defined in /home/aleksandr/Desktop/project/frontend-study-gochicus/.yarnrc.yml)
$ actl renderer dev [-p,--pretty-logs] [-s,--source #0] [-t,--tunnel #0]
@gochicus 1. Ты точно обновил все плагины? Проверь что все не месте
@TFK70
"diary": "yarn workspace @practice/web-diary run start" => "start": "actl renderer dev",
@gochicus
yarn workspace @practice/web-diary
Скрипты уже надо бы перенести в app
"start": "actl renderer dev"
Почему он запускается через actl? Тебе нужен yarn app для того чтобы твой проект на нексте билдился и запускался
И у тебя тут они прямо напутаны. У тебя должно быть 3 скрипта: build
,start
и dev
. build
- билдит проект, start
запускает проект из dist
(уже сбилженный проект), dev
- поднимает дев сервер. Сейчас у тебя скрипт start
запускает dev
.
Сами скрипты должны выглядеть как-то так:
"build": "yarn app renderer build --export",
"dev": "yarn app renderer dev",
"start": "node dist/index.js"
@TFK70 переделал скрипты как ты и указал:
"build": "yarn app renderer build --export",
"dev": "yarn app renderer dev",
"start": "node dist/index.js"
},```
При выполнении команды dev продолжается всё та же петрушка с плагином:
$ actl renderer dev [-p,--pretty-logs] [-s,--source #0] [-t,--tunnel #0]
При поптке сбилдить проект появляется папка next с необходимыми файлами, при этом проект не билдится из за ошибки вебпака:
info - Checking validity of types
warn - No ESLint configuration detected. Run next lint to begin setup
info - Creating an optimized production build
Failed to compile.
../../fragments/diary/src/Diary.tsx
Module parse failed: Unexpected token (12:4)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| export const Diary = () => {
| return (
> <Background gradient='blueAndGreenGradient'>
| <Column alignItems='center'>
| <Layout flexBasis={['0px', '0px', '300px']} />
> Build error occurred
Error: > Build failed because of webpack errors
at /home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/next-virtual-d57897dc16/0/cache/next-npm-11.0.1-c40bc7f380-c6b4747f1a.zip/node_modules/next/dist/build/index.js:15:924
at async Span.traceAsyncFn (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/next-virtual-d57897dc16/0/cache/next-npm-11.0.1-c40bc7f380-c6b4747f1a.zip/node_modules/next/dist/telemetry/trace/trace.js:6:584)
Internal Error: Command failed with exit code 1: yarn next build src
at makeError (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/execa-npm-5.1.1-191347acf5-fba9022c8c.zip/node_modules/execa/lib/error.js:60:11)
at handlePromise (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/execa-npm-5.1.1-191347acf5-fba9022c8c.zip/node_modules/execa/index.js:118:26)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async RendererBuildCommand.execute (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/@atls-actl-renderer-npm-0.0.3-6231794240-6720af1cf6.zip/node_modules/@atls/actl-renderer/dist/renderer-build.command.js:27:9)
at async RendererBuildCommand.validateAndExecute (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/clipanion-npm-2.6.2-65049fe240-7a1dfc8c9a.zip/node_modules/clipanion/lib/index.js:1118:26)
at async Cli.run (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/clipanion-npm-2.6.2-65049fe240-7a1dfc8c9a.zip/node_modules/clipanion/lib/index.js:1371:24)
at async Cli.runExit (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/cache/clipanion-npm-2.6.2-65049fe240-7a1dfc8c9a.zip/node_modules/clipanion/lib/index.js:1388:28)
Делал typecheck, все проблемы которые он обнаружил находятся в кэше ярна и к текущему коду отношения не имеют, добавил в пакет @types/node, @types/react там уже был. В затруднении, не могу предположить чем вызвана ошибка.
@gochicus Тут на самом деле ни к чему в каждый пакет добавлять @types/node и @types/react, можешь просто их установить в корневом пекедже и убрать из packageExtensions, только убедись что @types/node у тебя 14 версии тк мы на 14 ноде работаем
Ошибка с лоадером происходит потому что необходимо в next-babel-loader (который находится в вебпаке некста) напрямую просунуть пути до твоих воркспейсов, ибо сам он этого не делает. Вебпак конечно встроенный, но он патчится через next.config.js (ссылку на доку выше оставлял). За инжект путей будет отвечать пакет @atls/next-config-with-pnp-workspaces, пример его использования так же указывал выше
И на всякий случай сделай еще раз yarn add -D @atls/actl-cli чтобы убедиться что у тебя последняя версия actl
@TFK70 next.config.js такого вида должен был решить проблему билда?
const withPlugins = require('next-compose-plugins')
module.exports = withPlugins([withWorkspaces])```
@TFK70
Required package: styled-tools
Required by: @gochicus/list@virtual:6df81bcd35fb1da23793864c85a62c57ba104981caf59f634743de0d9a1e84dc0508860a15b3fe3d6731ed35477c25710de8f98ccce4ed2ddaccc621760dd6c0#npm:0.0.20 (via /home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/@gochicus-list-virtual-1eba0f42e5/0/cache/@gochicus-list-npm-0.0.20-d04d20b661-772bacbc83.zip/node_modules/@gochicus/list/dist/button/button.styles.js)
Ancestor breaking the chain: @fragments/post-list@workspace:practice/web-diary/fragments/post-list
Он указывает на фрагмент, но фишка в том, что в том пакете есть styled system, я добавил
@gochicus так это styled-tools
@TFK70 Сегодня работал со структурой, впроцессник закоммитил. Обновлял и тестировал пакет gochicus/list. На текущий момент проект вроде как сбилдился, но появилась ошибка пререндера, с ней буду разбираться завтра.
@TFK70 застрял на ошибках рендера. Сейчас вот проблема в intl судя по тексту. Я, вероятно, чего-то не понимаю, но собственно установленный react-intl там есть, объект intl тоже есть там, где он используется с хукком.
aleksandr@gochicus:~/Desktop/project/frontend-study-gochicus$ yarn workspace @web-diary/app run build
info - Using webpack 4. Reason: future.webpack5 option disabled https://nextjs.org/docs/messages/webpack5
info - Checking validity of types
info - Creating an optimized production build
info - Compiled successfully
info - Collecting page data
[ ==] info - Generating static pages (0/3)
Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
Error: [React Intl] Could not find required `intl` object. <IntlProvider> needs to exist in the component ancestry.
at Object.invariant (/home/aleksandr/Desktop/project/frontend-study-gochicus/practice/web-diary/app/src/.next/server/pages/index.js:2670:15)
at Object.invariantIntlContext (/home/aleksandr/Desktop/project/frontend-study-gochicus/practice/web-diary/app/src/.next/server/pages/index.js:6175:24)
at useIntl (/home/aleksandr/Desktop/project/frontend-study-gochicus/practice/web-diary/app/src/.next/server/pages/index.js:2572:13)
at Header (/home/aleksandr/Desktop/project/frontend-study-gochicus/practice/web-diary/app/src/.next/server/pages/index.js:1104:45)
at d (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/react-dom-virtual-fe01f4b047/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:33:498)
at bb (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/react-dom-virtual-fe01f4b047/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:36:16)
at a.b.render (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/react-dom-virtual-fe01f4b047/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:42:43)
at a.b.read (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/react-dom-virtual-fe01f4b047/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:41:83)
at exports.renderToString (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/react-dom-virtual-fe01f4b047/0/cache/react-dom-npm-17.0.2-f551215af1-1c1eaa3bca.zip/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:52:138)
at Object.renderPage (/home/aleksandr/Desktop/project/frontend-study-gochicus/.yarn/__virtual__/next-virtual-3faeefb9bb/0/cache/next-npm-10.2.3-e1de0387ed-715c83439f.zip/node_modules/next/dist/next-server/server/render.js:54:854)
info - Generating static pages (3/3)
@gochicus react-intl установлен в каждом пакете, где используется useIntl. Это значит, что у каждого пакета свой инстанс react-intl, но мы уже знаем что провайдер и хук (или консьмер) должны браться из одного инстанса пакета. Чтобы этого добиться нужно воспользоваться алиасами. Помимо алиасов нужно будет использовать 5 версию вебпака, это тоже настраивается через конфиг. Это все уже сделано, нужно просто прописать функции в next.config.js по аналогии. Пока их нету в репах атлантиса, так что нужно будет вынести их себе локально в отдельный воркспейс/директорию
Примечание - это должны быть cjs файлы, даже не ts.
Активация webpack5
Алиасы:
Пример использования:
const { withWorkspaces } = require('@atls/next-config-with-pnp-workspaces')
const { withAliases } = require('./helpers')
const { withFutureWebpack5 } = require('./helpers')
const withPlugins = require('next-compose-plugins')
module.exports = withPlugins([
withWorkspaces,
withFutureWebpack5,
withAliases([
'react-intl',
'@emotion/react',
'@emotion/styled'
], require)
])
В withAliases необходимо передать массив зависимостей, которые требуют обращения в единый инстанс (пока таких 3) и функцию require. После этого все обращения react-intl будут перенаправляться в инстанс react-intl который установлен в app.
@TFK70
. Пока их нету в репах атлантиса, так что нужно будет вынести их себе локально в отдельный воркспейс/директорию
Не понял что именно нужно вынести в формате csj в отдельную директорию. Алиасы и активация вебпака будут прописаны в next.config, а туда что?
@gochicus Функции, ты их откуда брать-то будешь? Я для этого код и приложил
@TFK70 Теперь понятно, подумал они прямо в конфиге прописываются.
@TFK70 Так, ну у меня сбилдился html, по команде dev сбилдился index.js что дальше с этим делать?
@gochicus index.js при исполнении должен поднимать дев-сервер (dev скрипт исполняет этот файл за тебя) твое приложение работает когда ты стучишься на localhost:3000?
@TFK70 нет, во время исполнения команд никаких ошибок тоже нет. Но я мог с настройкой вебпака напортачить, убрал одну строку. Можешь объяснить вот эту строку:
config.resolve.fallback.events = require.resolve('events/')
Я её убрал, когда при сборке он начал обращаться к папке событий, у меня такой нет.
@gochicus тебе events нужно установить как зависимость, не надо функции трогать в resolve.fallback.events находится путь до events в случае, если такого найдено не будет (погугли что такое fallback) events это нодовский модуль которого нету в контексте веба (как fs или path), поэтому тебе его нужно установить вручную как зависимость и указать к нему путь
@TFK70 сегодня работал со структруой, ошибками пререндерера, добавил стиль для элемента с id __next, проверял работу приложение. Билдится, запускается. Осталось почистить зависимости и устранить ошибки линта, которые не берет команда format.
@TFK70
Unknown Syntax Error: Command not found; did you mean one of:
0. actl lint [-r,--report #0] [--fix] ...
1. actl format ...
2. actl typecheck [-r,--report #0] ...
3. actl test:integration [-u,--update-shapshot] [-b,--bail] [--find-related-tests] [--json] [-r,--report #0] ...
4. actl test:unit [-u,--update-shapshot] [-b,--bail] [--find-related-tests] [--json] [-r,--report #0] ...
5. actl commit ...
6. actl service build [-s,--source #0]
7. actl service dev [-p,--pretty-logs] [-s,--source #0]
8. actl renderer build [-s,--source #0] [-e,--export]
9. actl renderer dev [-p,--pretty-logs] [-s,--source #0] [-t,--tunnel #0]
10. actl library build [-t,--target #0] [-s,--source #0]
While running precommit
husky - pre-commit hook exited with code 1 (error)
какая должна быть команда у прекоммита? actl precommit не работает.
@gochicus ну такой нет, напиши сам что он при прекоммите должен прогнать линт и тайпчек (это тоже через cli делается)
@TFK70 yarn husky add .husky/pre-commit "actl lint"
даже в таком варианте выдает ту же ошибку, в чем может быть проблема?
@gochicus попробуй yarn commit staged
@TFK70
✔ Preparing...
✔ Running tasks...
✔ Applying modifications...
✔ Cleaning up...
И больше ничего не произошло
@gochicus а у тебя в staged какие-нибудь файлы были?
@TFK70 Ну да, я ж не пустой коммит собрался делать
@gochicus пушни тогда
@TFK70
On branch chore/yarn2-migration
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: .husky/pre-commit
modified: package.json
aleksandr@gochicus:~/Desktop/project/frontend-study-gochicus$ git push origin chore/yarn2-migration
Everything up-to-date
Какого рода задача?
Перевести проект на ярн2
Что и где будем менять?
Выполнить шаги отсюда https://yarnpkg.com/getting-started/migration Глобально ничего переустанавливать не надо, версия будет автоматом подтягиваться для этого проекта после yarn set version berry (см гайд выше)
Перевестись на новый actl (@atls/actl-cli) Добавить следующие плагины (
yarn plugin import
): @yarnpkg/plugin-version, @yarnpkg/plugin-typescript, @yarnpkg/plugin-workspace-tools, @yarnpkg/plugin-interactive-tools, @atls/plugin-essentials @atls/plugin-essentials предварительно необходимо сбилдитьВозможные проблемы
Некоторым зависимостям может не хватать их же зависимостей, для этого необходимо с помощью packageExtensions добавить недостающую зависимость к проблемному пакету TypeError внутри пакетов. Это решается добавлением необходимых @types пакетов через те же packageExtensions