{"id":3524,"date":"2019-04-14T08:51:00","date_gmt":"2019-04-14T08:51:00","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/"},"modified":"2026-04-24T11:32:09","modified_gmt":"2026-04-24T11:32:09","slug":"%d8%a3%d9%88%d9%84-5-%d8%ae%d8%b7%d9%88%d8%a7%d8%aa-%d8%b3%d9%87%d9%84%d8%a9-%d8%b9%d8%a7%d9%84%d9%8a%d8%a9-%d8%a7%d9%84%d8%ac%d9%88%d8%af%d8%a9-%d9%84%d9%86%d8%b3%d8%a7%d9%84%d8%a9-%d8%a7%d9%84%d8%aa","status":"publish","type":"post","link":"https:\/\/thecodest.co\/ar\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/","title":{"rendered":"\u0627\u0644\u062c\u0648\u062f\u0629 \u0623\u0648\u0644\u0627\u064b! 5 \u062e\u0637\u0648\u0627\u062a \u0633\u0647\u0644\u0629 \u0644\u0646\u0633\u0627\u0644\u0629 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643 \u0645\u0639 \u0633\u064a\u0631 \u0639\u0645\u0644 GitHub \u0641\u064a \u0645\u0634\u0631\u0648\u0639 JavaScript"},"content":{"rendered":"<p>\u0645\u0627\u0630\u0627 \u0639\u0644\u064a\u0646\u0627 \u0623\u0646 \u0646\u0641\u0639\u0644\u060c \u0639\u0646\u062f\u0645\u0627 <a href=\"https:\/\/thecodest.co\/ar\/dictionary\/why-do-projects-fail\/\">\u0627\u0644\u0645\u0634\u0631\u0648\u0639<\/a> \u0635\u063a\u064a\u0631\u0629 \u0623\u0645 \u0623\u0646 \u0627\u0644\u0639\u0645\u064a\u0644 \u0644\u0627 \u064a\u0632\u0627\u0644 \u0644\u0627 \u064a\u0639\u0631\u0641 \u0645\u0627 \u0625\u0630\u0627 \u0643\u0627\u0646 \u0627\u0644\u0623\u0645\u0631 \u064a\u0633\u062a\u062d\u0642 \u0627\u0633\u062a\u062b\u0645\u0627\u0631 \u0627\u0644\u0645\u0632\u064a\u062f\u061f \u0645\u0646 \u0627\u0644\u0648\u0627\u0636\u062d\u060c \u0641\u064a <strong><a href=\"https:\/\/thecodest.co\/blog\/product-building-with-mvp-why-is-this-worth-implementing\/\">\u0645\u0631\u062d\u0644\u0629 MVP \u0645\u0646 \u0627\u0644\u0645\u0634\u0631\u0648\u0639<\/a><\/strong>, <a href=\"https:\/\/thecodest.co\/ar\/dictionary\/what-is-code-refactoring\/\">\u0627\u0644\u0643\u0648\u062f<\/a> \u0627\u0644\u062a\u0635\u0645\u064a\u0645 \u0623\u0648 \u0627\u062e\u062a\u0628\u0627\u0631\u0627\u062a \u0627\u0644\u0648\u062d\u062f\u0629 \u0644\u064a\u0633\u062a \u0627\u0644\u0623\u0648\u0644\u0648\u064a\u0629 \u0627\u0644\u0642\u0635\u0648\u0649. \u064a\u0631\u063a\u0628 \u0627\u0644\u0645\u0633\u062a\u062b\u0645\u0631\u0648\u0646 \u0639\u0627\u062f\u0629\u064b \u0641\u064a \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 <a href=\"https:\/\/thecodest.co\/ar\/dictionary\/how-to-make-product\/\">\u0627\u0644\u0645\u0646\u062a\u062c<\/a> \u0648\u0647\u064a\u0627 - \u0625\u0630\u0627 \u0643\u0627\u0646 \u064a\u0639\u0645\u0644\u060c \u0641\u0647\u0648 \u0644\u0627 \u064a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0627\u062e\u062a\u0628\u0627\u0631\u060c \u0623\u0644\u064a\u0633 \u0643\u0630\u0644\u0643\u061f<\/p>\n\n\n\n<p>\u0641\u064a \u0627\u0644\u0648\u0627\u0642\u0639\u060c \u0644\u062f\u064a \u0628\u0639\u0636 \u0627\u0644\u062e\u0628\u0631\u0629 \u0641\u064a <strong><a href=\"https:\/\/thecodest.co\/contact\">\u0625\u0646\u0634\u0627\u0621 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0645\u0646 \u0627\u0644\u0635\u0641\u0631<\/a><\/strong>\u062d\u062a\u0649 \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a \u0641\u064a \u0627\u0644\u0645\u0642\u0627\u0645 \u0627\u0644\u0623\u0648\u0644. \u0641\u0642\u062f \u0623\u062c\u0628\u0631\u062a\u0646\u064a \u0628\u0639\u0636 \u0638\u0631\u0648\u0641 \u0627\u0644\u0639\u0645\u0644 \u0639\u0644\u0649 \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u062d\u0644 \u0648\u0633\u0637 \u0628\u064a\u0646 \u062e\u0637\u0637 \u0645\u064a\u0632\u0627\u0646\u064a\u0629 \u0627\u0644\u0645\u0633\u062a\u062b\u0645\u0631 \u0648\u0642\u0627\u0626\u0645\u0629 \"\u0645\u0627 \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646\" \u0644\u062f\u0649 \u0627\u0644\u0645\u0637\u0648\u0631. \u0644\u062d\u0633\u0646 \u0627\u0644\u062d\u0638\u060c \u0625\u0630\u0627 \u0643\u0646\u062a \u062a\u0633\u062a\u062e\u062f\u0645 GitHub\u060c \u064a\u0645\u0643\u0646 \u062d\u0644 \u0645\u0639\u0638\u0645 \u0627\u0644\u0645\u0634\u0643\u0644\u0627\u062a \u0627\u0644\u0634\u0627\u0626\u0639\u0629 \u0627\u0644\u0645\u062a\u0639\u0644\u0642\u0629 \u0628\u062c\u0648\u062f\u0629 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0641\u064a \u0628\u0636\u0639 \u062f\u0642\u0627\u0626\u0642.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0645\u0642\u0627\u0644\u0629\u060c \u0633\u0623\u0648\u0636\u062d \u0644\u0643 \u0643\u064a\u0641\u064a\u0629 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u062a\u062f\u0641\u0642\u0627\u062a \u0639\u0645\u0644 GitHub \u0641\u064a \u0628\u064a\u0626\u0629 Node.js \u0644\u062a\u0648\u062d\u064a\u062f \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643.<\/strong><\/h2>\n\n\n\n<p>\u0628\u0639\u0636 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u0627\u062a \u0642\u0628\u0644 \u0623\u0646 \u0646\u0628\u062f\u0623:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0623\u0646\u062a \u0645\u0639\u062a\u0627\u062f \u0639\u0644\u0649 NPM \u0648\u0648\u062d\u062f\u0629 \u062a\u062d\u0643\u0645 Linux.<\/li>\n\n\n\n<li>\u0644\u062f\u064a\u0643 \u0628\u0639\u0636 \u0627\u0644\u062e\u0628\u0631\u0629 \u0641\u064a \u0645\u0639\u0627\u0644\u062c\u0627\u062a \u0627\u0644\u0623\u0646\u0645\u0627\u0637 \u0627\u0644\u0645\u0633\u0628\u0642\u0629\u060c \u0648\u0645\u064f\u062d\u0645\u0650\u0651\u0644\u0627\u062a \u0627\u0644\u0648\u062d\u062f\u0627\u062a \u0627\u0644\u0646\u0645\u0637\u064a\u0629\u060c \u0648\u0627\u0644\u062d\u0632\u0645\u060c \u0648\u0645\u0627 \u0625\u0644\u0649 \u0630\u0644\u0643.<\/li>\n\n\n\n<li>\u0623\u0646\u062a \u062a\u0639\u0631\u0641 \u0627\u0644\u063a\u0631\u0636 \u0645\u0646 \u0627\u0644\u0628\u0637\u0627\u0646\u0627\u062a \u0648\u062a\u0631\u064a\u062f \u062d\u0642\u064b\u0627 \u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647\u0627 \u0641\u064a \u0645\u0634\u0627\u0631\u064a\u0639\u0643.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. \u0647\u064a\u0643\u0644 \u0645\u0634\u0631\u0648\u0639 \u0646\u0645\u0648\u0630\u062c\u064a JavaScript<\/strong><\/h2>\n\n\n\n<p>\u0625\u0630\u0627 \u0633\u0628\u0642 \u0644\u0643 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0628\u0639\u0636 <a href=\"https:\/\/thecodest.co\/ar\/blog\/javascript-tools-in-action\/\">\u0627\u0644\u0634\u0628\u064a\u0628\u0629<\/a> \u0623\u0637\u0631 \u0639\u0645\u0644 \u0645\u062b\u0644 <a href=\"https:\/\/thecodest.co\/ar\/blog\/hire-vue-js-developers\/\">Vue<\/a> \u0623\u0648 <a href=\"https:\/\/thecodest.co\/ar\/blog\/conditional-component-visibility-in-react\/\">React<\/a>\u060c \u064a\u0645\u0643\u0646\u0643 \u0628\u0633\u0647\u0648\u0644\u0629 \u0627\u0643\u062a\u0634\u0627\u0641 \u0628\u0639\u0636 \u0627\u0644\u0623\u0634\u064a\u0627\u0621 \u0627\u0644\u0645\u0634\u062a\u0631\u0643\u0629 \u0628\u064a\u0646\u0647\u0645\u060c \u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>\/Src<\/em> \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0630\u064a \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0643\u0644 \u0645\u0646\u0637\u0642 \u0648\u0645\u0643\u0648\u0646\u0627\u062a JS \u0627\u0644\u062e\u0627\u0635 \u0628\u0643,<\/li>\n\n\n\n<li><em>\/\u0627\u062e\u062a\u0628\u0627\u0631<\/em> \u062f\u0644\u064a\u0644 \u0627\u062e\u062a\u0628\u0627\u0631\u0627\u062a \u0627\u0644\u0648\u062d\u062f\u0629 \u0648\u0627\u062e\u062a\u0628\u0627\u0631\u0627\u062a e2e,<\/li>\n\n\n\n<li><em>\/\u0627\u0644\u0623\u0635\u0648\u0644<\/em> \u062f\u0644\u064a\u0644 \u0644\u0644\u0623\u0646\u0645\u0627\u0637 \u0648\u0627\u0644\u0635\u0648\u0631 \u0648\u0645\u0627 \u0625\u0644\u0649 \u0630\u0644\u0643.<\/li>\n<\/ul>\n\n\n\n<p>\u062d\u062a\u0649 \u0644\u0648 \u0643\u0646\u0627 \u0646\u062a\u062d\u062f\u062b \u0639\u0646 <a href=\"https:\/\/thecodest.co\/ar\/blog\/hire-javascript-developer\/\">JavaScript<\/a> \u0627\u0644\u0645\u0634\u0631\u0648\u0639\u060c \u0646\u062d\u0646 \u0646\u0639\u0645\u0644 \u0641\u064a <a href=\"https:\/\/thecodest.co\/ar\/dictionary\/what-is-node-js-used-for\/\">\u0627\u0644\u0639\u0642\u062f\u0629<\/a> \u0627\u0644\u0628\u064a\u0626\u0629\u060c \u0644\u0630\u0644\u0643 \u0645\u0646 \u0627\u0644\u0648\u0627\u0636\u062d \u0623\u0646\u0647 \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0647\u0646\u0627\u0643 \u0623\u064a\u0636\u064b\u0627 \u0628\u0639\u0636 \u0627\u0644\u0623\u0634\u064a\u0627\u0621 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0627\u0644\u0639\u0642\u062f\u0629 \u0645\u062b\u0644 <em>\u0627\u0644\u062d\u0632\u0645\u0629.json<\/em>, <em>\u062d\u0632\u0645\u0629-\u0642\u0641\u0644 \u0627\u0644\u062d\u0632\u0645\u0629.json<\/em> \u0648 <em>\/ \u0627\u0644\u0639\u0642\u062f\u0629_\u0627\u0644\u0648\u062d\u062f\u0627\u062a \u0627\u0644\u0646\u0645\u0637\u064a\u0629<\/em> \u0641\u064a \u062f\u0644\u064a\u0644\u0646\u0627 \u0627\u0644\u062c\u0630\u0631.<\/p>\n\n\n\n<p>\u0643\u0644 \u0647\u0630\u0647 \u0627\u0644\u0623\u0634\u064a\u0627\u0621 \u0641\u064a \u0645\u0643\u0627\u0646\u0647\u0627 - \u0648\u0647\u0630\u0627 \u0645\u0627 \u0646\u0637\u0644\u0642 \u0639\u0644\u064a\u0647 \u0627\u0633\u0645 <strong>\u0627\u0644\u0627\u062a\u0641\u0627\u0642\u064a\u0629<\/strong>. \u062a\u0645 \u0627\u062e\u062a\u0631\u0627\u0639 \u0627\u0644\u0623\u0637\u0631 \u0644\u062a\u0648\u0641\u064a\u0631 \u0628\u0639\u0636 \u0627\u0644\u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a \u0627\u0644\u0645\u0639\u0642\u0648\u0644\u0629\u060c \u0644\u0630\u0644\u0643 \u0639\u0627\u062f\u0629\u064b \u0644\u0627 \u0646\u062d\u062a\u0627\u062c \u062d\u062a\u0649 \u0625\u0644\u0649 \u0627\u0644\u0627\u0647\u062a\u0645\u0627\u0645 \u0628\u0646\u0645\u0637 \u0627\u0644\u062a\u0635\u0645\u064a\u0645 \u0627\u0644\u0623\u0648\u0644\u064a. \u0643\u0645\u0627 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u062b\u0627\u0644\u060c \u0623\u0631\u064a\u062f \u0623\u0646 \u0623\u0634\u0631\u062d \u0628\u0639\u0636 \u0627\u0644\u0623\u0633\u0627\u0644\u064a\u0628\u060c \u0644\u0646 \u0623\u0637\u0628\u0642 \u0623\u064a \u062d\u0644\u0648\u0644 \u062c\u0627\u0647\u0632\u0629 \u0644\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0645\u062b\u0644 Vue CLI.<\/p>\n\n\n\n<p><strong>\u062d\u0627\u0646 \u0627\u0644\u0648\u0642\u062a \u0644\u0641\u0647\u0645 \u0645\u0627 \u0627\u0644\u0630\u064a \u064a\u0643\u0645\u0646 \u062a\u062d\u062a \u0643\u0644 \u0647\u0630\u0647 \u0627\u0644\u0646\u0635\u0648\u0635 \u0627\u0644\u0633\u062d\u0631\u064a\u0629!<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. \u062a\u0648\u0633\u064a\u0639 \u0645\u0634\u0631\u0648\u0639 \u0627\u0644\u0639\u0642\u062f\u0629 \u0627\u0644\u0646\u0645\u0648\u0630\u062c\u064a<\/strong><\/h2>\n\n\n\n<p>\u0644\u062a\u0648\u0641\u064a\u0631 \u062d\u0644\u0648\u0644 \u0639\u0627\u0644\u064a\u0629 \u0627\u0644\u062c\u0648\u062f\u0629\u060c \u0641\u0625\u0646 \u0627\u0644\u0628\u0637\u0627\u0646\u0627\u062a \u0647\u064a \u0623\u0648\u0644 \u0645\u0627 \u064a\u062c\u0628 \u0623\u0646 \u0646\u0628\u062f\u0623 \u0628\u0647 \u0623\u062b\u0646\u0627\u0621 \u0625\u0639\u062f\u0627\u062f \u0645\u0634\u0631\u0648\u0639 \u062c\u062f\u064a\u062f. \u062f\u0639\u0648\u0646\u0627 \u0646\u0631\u0643\u0632 \u0639\u0644\u0649 \u0627\u062b\u0646\u064a\u0646 \u0645\u0646 \u0627\u0644\u0628\u0637\u0627\u0646\u0627\u062a - \u0633\u062a\u0627\u064a\u0644 \u0644\u064a\u0646\u062a \u0644\u0644\u0623\u0646\u0645\u0627\u0637 (<em>*.scss<\/em>) \u0648 ESLint \u0644\u0644\u0645\u0644\u0641\u0627\u062a \u0627\u0644\u0645\u0635\u062f\u0631\u064a\u0629 (<em>*.js<\/em>). \u0643\u0644\u062a\u0627 \u0647\u0627\u062a\u064a\u0646 \u0627\u0644\u0628\u0637\u0627\u0646\u0627\u062a \u0645\u062a\u0648\u0641\u0631\u0629 \u0639\u0644\u0649 NPM \u0648\u0645\u0646 \u0627\u0644\u0633\u0647\u0644 \u062c\u062f\u064b\u0627 \u062a\u0647\u064a\u0626\u062a\u0647\u0627. \u064a\u062a\u0637\u0644\u0628 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0628\u0637\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0631\u0648\u0631 \u0628\u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062b\u0628\u064a\u062a\u060c \u0648\u0625\u0636\u0627\u0641\u0629 \u0645\u0644\u0641\u0627\u062a \u0627\u0644\u062a\u0647\u064a\u0626\u0629 \u0648\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0628\u0631\u0627\u0645\u062c \u0627\u0644\u0646\u0635\u064a\u0629 \u0644\u0644\u0645\u0634\u0631\u0648\u0639. \u0644\u0646\u0641\u0639\u0644 \u0630\u0644\u0643 \u062e\u0637\u0648\u0629 \u0628\u062e\u0637\u0648\u0629.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. \u0625\u0636\u0627\u0641\u0629 \u0633\u062a\u0627\u064a\u0644 \u0644\u064a\u0646\u062a<\/strong><\/h2>\n\n\n\n<p>\u0625\u0646 \u062a\u062b\u0628\u064a\u062a Stylelint \u0641\u064a \u0628\u064a\u0626\u0629 Node \u0628\u0633\u064a\u0637 \u0644\u0644\u063a\u0627\u064a\u0629. \u0648\u0641\u0642\u064b\u0627 \u0644\u0640 <a href=\"https:\/\/stylelint.io\/user-guide\/get-started\">\u0627\u0644\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0627\u0644\u0631\u0633\u0645\u064a\u0629<\/a>\u060c \u0645\u0627 \u0639\u0644\u064a\u0643 \u0633\u0648\u0649 \u0627\u0644\u062c\u0631\u064a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">\u062a\u062b\u0628\u064a\u062a npm -\u062a\u062b\u0628\u064a\u062a -\u062d\u0641\u0638-\u062a\u0637\u0648\u064a\u0631-\u062d\u0641\u0638-\u0637\u0631\u064a\u0642\u0629-\u0637\u0631\u064a\u0642\u0629-\u062a\u0637\u0648\u064a\u0631-\u0645\u0639\u064a\u0627\u0631-\u062a\u0643\u0648\u064a\u0646-\u0645\u0639\u064a\u0627\u0631-\u0623\u0633\u0644\u0648\u0628-\u0644\u0646\u062a<\/code><\/pre>\n\n\n\n<p>\u0648\u0627\u0646\u062a\u0638\u0631 \u062d\u062a\u0649 \u064a\u0646\u062a\u0647\u064a \u0627\u0644\u0623\u0645\u0631<\/p>\n\n\n\n<p><em>\u0633\u062a\u0627\u064a\u0644\u064a\u0646\u062a-\u0643\u0648\u0646\u0641\u064a\u062c-\u0645\u0639\u064a\u0627\u0631-\u0633\u062a\u0627\u064a\u0644\u064a\u0646\u062a<\/em> \u064a\u0648\u0641\u0631 \u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0645\u0646 \u0642\u0648\u0627\u0639\u062f \u0627\u0644\u062a\u0644\u0648\u064a\u0646 \u0648\u064a\u0645\u0643\u0646 \u0627\u0633\u062a\u0628\u062f\u0627\u0644\u0647 \u0628\u0623\u064a \u062d\u0632\u0645\u0629 \u062a\u0646\u0627\u0633\u0628 \u0627\u062d\u062a\u064a\u0627\u062c\u0627\u062a\u0643 \u0628\u0634\u0643\u0644 \u0623\u0641\u0636\u0644 (\u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644 <a href=\"https:\/\/www.npmjs.com\/package\/stylelint-config-airbnb\">\u0623\u0633\u0644\u0648\u0628 Airbnb<\/a>). \u062b\u0645 \u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641 \u0645\u062e\u0641\u064a \u062c\u062f\u064a\u062f <em>.stylelintrc.json<\/em>\u0648\u0647\u0648 \u0645\u0644\u0641 \u062a\u0647\u064a\u0626\u0629 Stylelint\u060c \u0627\u0644\u0645\u0633\u0624\u0648\u0644 \u0639\u0646 \u062a\u062d\u0645\u064a\u0644 \u0642\u0648\u0627\u0639\u062f\u0646\u0627 \u0627\u0644\u0645\u062d\u062f\u062f\u0629 \u0645\u0633\u0628\u0642\u064b\u0627:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">{\n    \"extends\": \"stylelint-config-standard\"\n}<\/code><\/pre>\n\n\n\n<p>\u0641\u064a \u0627\u0644\u0648\u0642\u062a \u0627\u0644\u062d\u0627\u0644\u064a\u060c \u0627\u0644\u0634\u064a\u0621 \u0627\u0644\u0648\u062d\u064a\u062f \u0627\u0644\u0645\u0641\u0642\u0648\u062f \u0647\u0648 \u0628\u0639\u0636 \u0627\u0644\u0646\u0635\u0648\u0635 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 (\u0623\u0648 \u0627\u0644\u0646\u0635\u0648\u0635 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629) NPM \u0627\u0644\u0645\u0639\u0644\u0646\u0629 \u0641\u064a \u0645\u0644\u0641 package.json \u0644\u0628\u062f\u0621 \u062a\u0638\u0644\u064a\u0644 \u0645\u0644\u0641\u0627\u062a SCSS \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0646\u0627. \u0647\u0630\u0627 \u0647\u0648 \u0627\u0642\u062a\u0631\u0627\u062d\u064a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\"\u0646\u0635\u0648\u0635\": {\n    \"lint:scss\": \"stylelint '**\/*.scss' -Syntlint:scss -Syntax scss -f verbose --color\",\n    \"lint:scss:fix\": \"stylelint '**\/*.scss' ---\u0646\u062d\u0648 scss -f verbose -color\": \"stylelint '**\/*.scss' -scss -f verbose -color\"\n}<\/code><\/pre>\n\n\n\n<p>\u0643\u0645\u0627 \u062a\u0631\u0648\u0646\u060c \u0644\u0642\u062f \u0623\u0639\u0644\u0646\u062a \u0623\u0646 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0644\u0646\u0635\u064a \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 <strong>-\u0627\u0644\u0625\u0635\u0644\u0627\u062d<\/strong> \u0627\u0644\u062e\u064a\u0627\u0631 - \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631 \u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647 \u0642\u0628\u0644 \u062f\u0641\u0639 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u062f\u0639.<\/p>\n\n\n\n<p><strong>\u062a\u0630\u0643\u0631 - \u0645\u0646 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a \u0627\u0644\u0633\u064a\u0626\u0629 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 <em>-\u0627\u0644\u0625\u0635\u0644\u0627\u062d<\/em> \u0641\u064a \u062a\u062f\u0641\u0642 CI \u0627\u0644\u062e\u0627\u0635 \u0628\u0643\u060c \u0644\u0623\u0646 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u062a\u064a \u062a\u0645\u0631\u0631\u0647\u0627 \u0625\u0644\u0649 \u0627\u0644\u0625\u0646\u062a\u0627\u062c \u0644\u0627 \u064a\u062a\u0645 \u062a\u0635\u0645\u064a\u0645\u0647\u0627 \u0628\u0634\u0643\u0644 \u0635\u062d\u064a\u062d \u0641\u064a \u0627\u0644\u0645\u0633\u062a\u0648\u062f\u0639.<\/strong> \u0644\u0647\u0630\u0627 \u0627\u0644\u0633\u0628\u0628 \u0646\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0643\u0644\u0627 \u0627\u0644\u0646\u0635\u064a\u0646.<\/p>\n\n\n\n<p>\u0644\u0646\u062e\u062a\u0628\u0631 \u0627\u0644\u0645\u064f\u0628\u0637\u0650\u0651\u0646 \u0645\u0646 \u062e\u0644\u0627\u0644 \u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641 <em>\/\u0627\u0644\u0623\u0635\u0648\u0644\/ssssss\/styles.scss<\/em> \u0645\u0639 \u0628\u0639\u0636 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a\u060c \u0645\u062b\u0644<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"css\" class=\"language-css\">\u0627\u0644\u062c\u0633\u0645 {\n                    \u0644\u0648\u0646 \u0627\u0644\u062e\u0644\u0641\u064a\u0629: #fff;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">\u062a\u0634\u063a\u064a\u0644 npm lint:scss<\/code><\/pre>\n\n\n\n<p>\u064a\u062c\u0628 \u0623\u0646 \u062a\u0631\u0649 \u0641\u064a \u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u062d\u0643\u0645 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643 \u0634\u064a\u0626\u064b\u0627 \u0643\u0647\u0630\u0627:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">&gt; stylelint '**\/*.scss' - \u0627\u0644\u0635\u064a\u063a\u0629 scss -f verbose - \u0627\u0644\u0644\u0648\u0646\n\n\u0627\u0644\u0623\u0635\u0648\u0644\/ssssss\/styles.scss\n\n2:21 \u2716 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629 \u0627\u0644\u0645\u062a\u0648\u0642\u0639\u0629 2 \u0645\u0633\u0627\u0641\u0629 \u0628\u0627\u062f\u0626\u0629\n\n1 \u062a\u0645 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u0635\u062f\u0631\n\n~\/Codest\/Projects\/github-workflow-demo\/assets\/ssss\/styles.scss\n\n\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 1 \u0645\u0634\u0643\u0644\u0629\n\n\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u062e\u0637\u0648\u0631\u0629 \"\u062e\u0637\u0623\": 1\n\n\u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629 1\n\nnpm ERR! \u0627\u0644\u0631\u0645\u0632 ELIFECYCLE\n\nnpm ERR! \u062e\u0637\u0623 2\n\nnpm ERR! github-workflow-demo@1.0.0 lint:scss: ''stylelint '**\/*.scss' - \u0627\u0644\u0635\u064a\u063a\u0629 scss -f verbose - \u0627\u0644\u0644\u0648\u0646''\n\nnpm ERR! \u062d\u0627\u0644\u0629 \u0627\u0644\u062e\u0631\u0648\u062c 2<\/code><\/pre>\n\n\n\n<p>\u0647\u0630\u0627 \u064a\u0639\u0646\u064a \u0641\u064a \u0627\u0644\u0648\u0627\u0642\u0639 \u0623\u0646 \u0627\u0644\u0645\u064f\u0628\u0637\u0650\u0651\u0646 \u064a\u0639\u0645\u0644!<\/p>\n\n\n\n<p>\u064a\u0648\u0636\u062d \u0627\u0644\u0625\u062e\u0631\u0627\u062c \u0627\u0644\u0633\u0637\u0631 \u0627\u0644\u0630\u064a \u064a\u0633\u0628\u0628 \u0627\u0644\u062e\u0637\u0623 \u0628\u0627\u0644\u0636\u0628\u0637 \u0648\u064a\u0635\u0641 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0627\u0644\u062a\u064a \u064a\u062c\u0628 \u062d\u0644\u0647\u0627. \u0628\u0639\u0636 \u0627\u0644\u0645\u0634\u0627\u0643\u0644 \u0644\u0627 \u064a\u0645\u0643\u0646 \u062d\u0644\u0647\u0627 \u062a\u0644\u0642\u0627\u0626\u064a\u064b\u0627 \u0644\u0623\u0646\u0647\u0627 \u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0642\u0631\u0627\u0631 \u0645\u0646 \u0627\u0644\u0645\u0637\u0648\u0631\u060c \u0648\u0644\u0643\u0646 \u0641\u064a \u0645\u0639\u0638\u0645 \u0627\u0644\u062d\u0627\u0644\u0627\u062a\u060c \u062a\u062d\u062a\u0627\u062c \u0641\u0642\u0637 \u0625\u0644\u0649 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0623\u0645\u0631 \u0646\u0641\u0633\u0647 \u0645\u0639 <strong>-\u0627\u0644\u0625\u0635\u0644\u0627\u062d<\/strong> \u0627\u0644\u062e\u064a\u0627\u0631\u060c \u0644\u0630\u0627 \u062f\u0639\u0646\u0627 \u0646\u0634\u063a\u0644\u0647.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm \u062a\u0634\u063a\u064a\u0644 lint:scss:fix<\/code><\/pre>\n\n\n\n<p>\u0627\u0644\u0622\u0646 \u064a\u062c\u0628 \u0623\u0646 \u062a\u0631\u0649 \u0645\u062e\u0631\u062c\u0627\u062a \u062e\u0636\u0631\u0627\u0621 \u0645\u0639 \u0639\u062f\u0645 \u0648\u062c\u0648\u062f \u0623\u062e\u0637\u0627\u0621:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">stylelint '**\/*.scss' - \u0627\u0644\u0635\u064a\u063a\u0629 scss - \u0627\u0644\u0635\u064a\u063a\u0629 scss - f-fix -f verbose - color\n\n\n1 \u062a\u0645 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0645\u0635\u062f\u0631\n\n\/Users\/wojciechbak\/Codest\/Projects\/github-workflow-demo\/assets\/ssssss\/styles.scss\n\n0 \u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 0 \u0645\u0634\u0643\u0644\u0629<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. \u0625\u0636\u0627\u0641\u0629 ESLint<\/strong><\/h2>\n\n\n\n<p>\u0647\u0630\u0647 \u0627\u0644\u062e\u0637\u0648\u0629 \u0647\u064a \u062a\u0642\u0631\u064a\u0628\u064b\u0627 \u0646\u0641\u0633 \u0627\u0644\u062e\u0637\u0648\u0629 \u0627\u0644\u0633\u0627\u0628\u0642\u0629. \u0633\u0646\u0642\u0648\u0645 \u0628\u062a\u062b\u0628\u064a\u062a ESLint\u060c \u0648\u062a\u062d\u062f\u064a\u062f \u0628\u0639\u0636 \u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0642\u0648\u0627\u0639\u062f \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0648\u0625\u0639\u0644\u0627\u0646 \u0646\u0635\u064a\u0646 \u0628\u0631\u0645\u062c\u064a\u064a\u0646 NPM \u0642\u0627\u0628\u0644\u064a\u0646 \u0644\u0644\u0627\u0633\u062a\u062f\u0639\u0627\u0621 - \u0623\u062d\u062f\u0647\u0645\u0627 \u0644\u0644\u062a\u062b\u0628\u064a\u062a \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0648\u0627\u0644\u0622\u062e\u0631 \u0644\u0644\u062f\u0641\u0639 \u0627\u0644\u0645\u0633\u0628\u0642. \u062f\u0639\u0648\u0646\u0627 \u0646\u0646\u062a\u0642\u0644 \u0625\u0644\u0649 \u0647\u0630\u0627!<\/p>\n\n\n\n<p>\u0625\u0630\u0627 \u0643\u0646\u062a \u062a\u0633\u062a\u062e\u062f\u0645 NPM \u0641\u064a \u0639\u0645\u0644\u0643 \u0627\u0644\u064a\u0648\u0645\u064a\u060c \u0641\u0631\u0628\u0645\u0627 \u062a\u0631\u063a\u0628 \u0641\u064a \u062a\u062b\u0628\u064a\u062a ESLint \u0639\u0627\u0644\u0645\u064a\u064b\u0627. \u0625\u0630\u0627 \u0644\u0645 \u062a\u0643\u0646 \u062a\u0633\u062a\u062e\u062f\u0645\u0647\u060c \u064a\u064f\u0631\u062c\u0649 \u0645\u0631\u0627\u062c\u0639\u0629 \u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u062a\u062b\u0628\u064a\u062a \u0641\u064a <a href=\"https:\/\/eslint.org\/docs\/user-guide\/getting-started\">\u0627\u0644\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0627\u0644\u0631\u0633\u0645\u064a\u0629<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">\u062a\u062b\u0628\u064a\u062a npm -g eslint<\/code><\/pre>\n\n\n\n<p>\u0639\u0646\u062f\u0645\u0627 \u064a\u062a\u0648\u0641\u0631 \u0623\u0645\u0631 eslint \u0639\u0644\u0649 \u062c\u0647\u0627\u0632\u0643\u060c \u0645\u0627 \u0639\u0644\u064a\u0643 \u0633\u0648\u0649 \u062a\u0634\u063a\u064a\u0644\u0647 \u0641\u064a \u0645\u0634\u0631\u0648\u0639\u0643:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">\u0625\u0633\u0644\u064a\u0646\u062a -\u0625\u0646\u0634\u0627\u0621<\/code><\/pre>\n\n\n\n<p>\u0628\u0627\u062a\u0628\u0627\u0639 \u0627\u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0645\u0639\u0631\u0648\u0636\u0629 \u0641\u064a \u062c\u0647\u0627\u0632\u0643 \u0627\u0644\u0637\u0631\u0641\u064a\u060c \u0645\u0627 \u0639\u0644\u064a\u0643 \u0633\u0648\u0649 \u0627\u062a\u062e\u0627\u0630 \u0628\u0639\u0636 \u0627\u0644\u0642\u0631\u0627\u0631\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u0645\u062b\u0644:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u062c\u0627\u0641\u0627 \u0633\u0643\u0631\u064a\u0628\u062a \u0623\u0648 <a href=\"https:\/\/thecodest.co\/ar\/dictionary\/typescript-developer\/\">TypeScript<\/a><\/li>\n\n\n\n<li>\u0623\u0633\u0644\u0648\u0628 Airbnb \u0623\u0648 \u0623\u0633\u0644\u0648\u0628 \u062c\u0648\u062c\u0644<\/li>\n\n\n\n<li>\u0646\u0648\u0639 \u0627\u0644\u062a\u0643\u0648\u064a\u0646 (\u0645\u0644\u0641 JSON \u0623\u0648 \u0645\u0644\u0641 JS \u0623\u0648 \u0645\u0636\u0645\u0646 \u0641\u064a <em>\u0627\u0644\u062d\u0632\u0645\u0629.json<\/em>)<\/li>\n\n\n\n<li>\u0648\u062d\u062f\u0627\u062a ES (<em>\u0627\u0644\u0627\u0633\u062a\u064a\u0631\u0627\u062f\/\u0627\u0644\u062a\u0635\u062f\u064a\u0631<\/em>) \u0623\u0648 <em>\u062a\u062a\u0637\u0644\u0628<\/em> \u0628\u0646\u0627\u0621 \u0627\u0644\u062c\u0645\u0644\u0629<\/li>\n<\/ul>\n\n\n\n<p>\u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0643\u0627\u0646\u060c \u064a\u062c\u062f\u0631 \u0628\u0646\u0627 \u0623\u0646 \u0646\u0643\u062a\u0628 \u0643\u0644\u0645\u0629 \u0639\u0646 \u0645\u064f\u0646\u0633\u0650\u0651\u0642 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u0645\u0633\u0645\u0649 Prettier. \u0625\u0646\u0647 \u0645\u0648\u062d\u062f \u062a\u0645\u0627\u0645\u064b\u0627 \u0648\u0645\u062a\u0648\u0627\u0641\u0642 \u0645\u0639 \u0645\u0639\u0638\u0645 \u0628\u0631\u0627\u0645\u062c \u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0623\u0643\u0648\u0627\u062f (\u0645\u062b\u0644 VS Code). \u064a\u0648\u0641\u0631 Prettier \u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0642\u0648\u0627\u0639\u062f \u062a\u0635\u0645\u064a\u0645 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0627\u0644\u0645\u062d\u062f\u062f\u0629 \u0645\u0633\u0628\u0642\u064b\u0627\u060c \u0648\u064a\u0639\u0645\u0644 \u0628\u0634\u0643\u0644 \u0645\u0634\u062a\u0631\u0643 \u0645\u0639 \u0627\u0644\u0645\u064f\u0628\u0631\u0645\u062c\u064a\u0646 \u0648\u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0643\u0648\u0646 \u062f\u0639\u0645\u064b\u0627 \u0643\u0628\u064a\u0631\u064b\u0627 \u0641\u064a \u0627\u0644\u0633\u0639\u064a \u0648\u0631\u0627\u0621 \u0623\u0639\u0644\u0649 \u062c\u0648\u062f\u0629 \u0644\u0644\u0634\u064a\u0641\u0631\u0629. \u0644\u0641\u0647\u0645 \u0645\u0627 \u0647\u0648 \u0628\u0631\u064a\u062a\u064a\u064a\u0647 \u0628\u0627\u0644\u0636\u0628\u0637\u060c \u0642\u0645 \u0628\u0632\u064a\u0627\u0631\u0629 \u0647\u0630\u0627 <a href=\"https:\/\/prettier.io\/docs\/en\/comparison.html\">\u0627\u0644\u0645\u0642\u0627\u0631\u0646\u0629<\/a> \u0645\u0646 \u0627\u0644\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0627\u0644\u0631\u0633\u0645\u064a\u0629<\/p>\n\n\n\n<p>\u0625\u0630\u0627 \u062a\u0645 \u0630\u0644\u0643\u060c \u0641\u0625\u0646 \u0645\u0644\u0641 \u062a\u0643\u0648\u064a\u0646 ESlint (\u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644 <em>.eslintrc.json<\/em>\u060c \u0627\u0639\u062a\u0645\u0627\u062f\u064b\u0627 \u0639\u0644\u0649 \u0645\u0627 \u0627\u062e\u062a\u0631\u062a\u0647 \u0645\u0646 \u0642\u0628\u0644) \u064a\u062c\u0628 \u0623\u0646 \u064a\u0638\u0647\u0631 \u0641\u064a \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u062c\u0630\u0631 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643\u060c \u0641\u064a \u0645\u0643\u0627\u0646 \u0645\u0627 \u0628\u062c\u0648\u0627\u0631 <em>.stylelintrc.json<\/em> \u062a\u0645 \u0625\u0646\u0634\u0627\u0624\u0647\u0627 \u0645\u0646 \u0642\u0628\u0644.<\/p>\n\n\n\n<p>\u0627\u0644\u0622\u0646 \u0639\u0644\u064a\u0646\u0627 \u062a\u0639\u0631\u064a\u0641 \u0627\u0644\u0628\u0631\u0627\u0645\u062c \u0627\u0644\u0646\u0635\u064a\u0629 \u0641\u064a <em>\u0627\u0644\u062d\u0632\u0645\u0629.json<\/em> \u0643\u0645\u0627 \u0647\u0648 \u0627\u0644\u062d\u0627\u0644 \u0628\u0627\u0644\u0646\u0633\u0628\u0629 \u0644\u0645\u0644\u0641\u0627\u062a SCSS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\"\u0646\u0635\u0648\u0635\": {\n    \"lint:js\": \"eslint '**\/*.js' --ignore-pattern node_modules\/\",\n    \"lint:js:fix\": \"eslint '**\/*.js' --ignore-pattern node_modules\/ --fix\"\n}<\/code><\/pre>\n\n\n\n<p>\u062a\u0647\u0627\u0646\u064a\u0646\u0627! ESLint \u062c\u0627\u0647\u0632 \u0644\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0622\u0646. \u062f\u0639\u0646\u0627 \u0646\u062a\u062d\u0642\u0642 \u0645\u0645\u0627 \u0625\u0630\u0627 \u0643\u0627\u0646 \u064a\u0639\u0645\u0644 \u0628\u0634\u0643\u0644 \u0635\u062d\u064a\u062d. \u0625\u0646\u0634\u0627\u0621 <em>\/src\/index.js<\/em> \u0645\u0644\u0641 \u0645\u0639 \u0628\u0639\u0636 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u062d\u0643\u0645.log(\"\u0634\u064a\u0621 \u0645\u0627\");<\/code><\/pre>\n\n\n\n<p>\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u0628\u0637\u064a\u0646:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">\u062a\u0634\u063a\u064a\u0644 npm lint:js<\/code><\/pre>\n\n\n\n<p><code><br><\/code>\u064a\u062c\u0628 \u0623\u0646 \u064a\u0628\u062f\u0648 \u0627\u0644\u0646\u0627\u062a\u062c \u0647\u0643\u0630\u0627:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">&gt; eslint '**\/*.js' --\u062a\u062c\u0627\u0647\u0644 \u0646\u0645\u0637 node_modules\/\n\n~\/Codest\/Projects\/github-workflow-demo\/src\/index.js\n\n1:1 \u062a\u062d\u0630\u064a\u0631 \u0639\u0628\u0627\u0631\u0629 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639\u0629 \u0644\u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u062d\u0643\u0645 no-console\n\n\u2716 1 \u0645\u0634\u0643\u0644\u0629 (0 \u062e\u0637\u0623\u060c 1 \u062a\u062d\u0630\u064a\u0631)<\/code><\/pre>\n\n\n\n<p>\u0644\u0646 \u064a\u062e\u062a\u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062a\u062d\u0630\u064a\u0631 \u0628\u0639\u062f \u0627\u0633\u062a\u062e\u062f\u0627\u0645 <em>-\u0627\u0644\u0625\u0635\u0644\u0627\u062d<\/em> \u062e\u064a\u0627\u0631\u061b \u0644\u0623\u0646 <strong>\u0644\u0627 \u062a\u0624\u062b\u0631 \u0627\u0644\u0645\u0628\u0637\u0651\u0646\u0627\u062a \u0639\u0644\u0649 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0630\u0627\u062a \u0627\u0644\u0645\u0639\u0646\u0649 \u0627\u0644\u0645\u062d\u062a\u0645\u0644. \u0625\u0646\u0647\u0627 \u0641\u0642\u0637 \u0644\u062a\u0635\u0645\u064a\u0645 \u0627\u0644\u0634\u064a\u0641\u0631\u0629<\/strong>\u060c \u0628\u0645\u0627 \u0641\u064a \u0630\u0644\u0643 \u0627\u0644\u0645\u0633\u0627\u0641\u0627\u062a \u0627\u0644\u0628\u064a\u0636\u0627\u0621 \u0648\u0627\u0644\u0623\u0633\u0637\u0631 \u0627\u0644\u062c\u062f\u064a\u062f\u0629 \u0648\u0627\u0644\u0641\u0648\u0627\u0635\u0644 \u0627\u0644\u0645\u0646\u0642\u0648\u0637\u0629 \u0648\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u0627\u0642\u062a\u0628\u0627\u0633 \u0648\u0645\u0627 \u0625\u0644\u0649 \u0630\u0644\u0643.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. \u062a\u062d\u062f\u064a\u062f \u0633\u064a\u0631 \u0639\u0645\u0644 GitHub<\/strong><\/h2>\n\n\n\n<p><a href=\"https:\/\/help.github.com\/en\/actions\/configuring-and-managing-workflows\/configuring-a-workflow\">\u0633\u064a\u0631 \u0639\u0645\u0644 GitHub<\/a> \u0647\u064a \u0634\u064a\u0621 \u0645\u0648\u062b\u0642 \u062c\u064a\u062f\u064b\u0627. \u0644\u0627 \u062a\u062a\u0631\u062f\u062f \u0641\u064a \u0627\u0644\u062a\u0639\u0645\u0642 \u0623\u0643\u062b\u0631 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0623\u0645\u0631\u060c \u0648\u0644\u0643\u0646 \u0641\u064a \u0627\u0644\u0648\u0642\u062a \u0627\u0644\u062d\u0627\u0644\u064a\u060c \u0633\u0623\u0642\u0648\u0645 \u0628\u062a\u0646\u0641\u064a\u0630 \u0633\u064a\u0631 \u0639\u0645\u0644 \u0628\u0633\u064a\u0637 \u0644\u0646\u0633\u0627\u0644\u0629 \u0627\u0644\u0634\u064a\u0641\u0631\u0629 \u0628\u0639\u062f \u0627\u0644\u062f\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0648\u062f\u0639 \u0627\u0644\u0628\u0639\u064a\u062f (\u0645\u0646 \u0627\u0644\u0648\u0627\u0636\u062d \u0623\u0646\u0647 \u0645\u0633\u062a\u0636\u0627\u0641 \u0639\u0644\u0649 GitHub).<\/p>\n\n\n\n<p>\u0625\u0646\u0634\u0627\u0621 <em>\/.github\/workflows<\/em> \u0627\u0644\u062f\u0644\u064a\u0644 \u0648\u0627\u0644\u062c\u062f\u064a\u062f <em>\u0643\u0648\u062f-\u062c\u0648\u062f\u0629-\u0633\u064a\u0631 \u0627\u0644\u0639\u0645\u0644.yml<\/em> \u0647\u0646\u0627\u0643 \u062d\u064a\u062b \u064a\u062c\u0628 \u062a\u0639\u0631\u064a\u0641 \u0645\u0647\u0627\u0645 \u0633\u064a\u0631 \u0639\u0645\u0644 GitHub \u0628\u0645\u0644\u0641\u0627\u062a YAML.<\/p>\n\n\n\n<p>\u0644\u062a\u0634\u063a\u064a\u0644 \u0633\u064a\u0631 \u0639\u0645\u0644 \u0645\u0646\u0627\u0633\u0628\u060c \u0639\u0644\u064a\u0646\u0627 \u0627\u0644\u0625\u062c\u0627\u0628\u0629 \u0639\u0646 \u0628\u0639\u0636 \u0627\u0644\u0623\u0633\u0626\u0644\u0629:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0645\u062a\u0649 \u0646\u0631\u064a\u062f \u062a\u0634\u063a\u064a\u0644 \u0633\u064a\u0631 \u0639\u0645\u0644\u0646\u0627 (\u0639\u0646\u062f \u0627\u0644\u062f\u0641\u0639\u060c \u0639\u0646\u062f \u0637\u0644\u0628 \u0627\u0644\u0633\u062d\u0628\u060c \u0639\u0646\u062f \u0627\u0644\u062f\u0645\u062c\u060c \u0625\u0644\u062e)\u061f<\/li>\n\n\n\n<li>\u0647\u0644 \u0646\u0631\u064a\u062f \u0627\u0633\u062a\u0628\u0639\u0627\u062f \u0628\u0639\u0636 \u0627\u0644\u062d\u0627\u0644\u0627\u062a (\u0645\u062b\u0644 \u0627\u0644\u062f\u0641\u0639 \u0625\u0644\u0649 \u0627\u0644\u0641\u0631\u0639 \u0627\u0644\u0631\u0626\u064a\u0633\u064a)\u061f<\/li>\n\n\n\n<li>\u0645\u0627 \u0647\u064a \u0627\u0644\u0628\u064a\u0626\u0629 \u0627\u0644\u062a\u064a \u0646\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0625\u0639\u062f\u0627\u062f\u0647\u0627 \u0644\u062a\u0634\u063a\u064a\u0644 \u0623\u0648\u0627\u0645\u0631\u0646\u0627 \u0628\u0634\u0643\u0644 \u0635\u062d\u064a\u062d (\u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u062b\u0627\u0644 - \u0627\u0644\u0639\u0642\u062f\u0629)\u061f<\/li>\n\n\n\n<li>\u0647\u0644 \u0646\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u062a\u0628\u0639\u064a\u0627\u062a\u061f \u0625\u0630\u0627 \u0643\u0627\u0646 \u0627\u0644\u0623\u0645\u0631 \u0643\u0630\u0644\u0643\u060c \u0643\u064a\u0641 \u064a\u062c\u0628 \u0639\u0644\u064a\u0646\u0627 \u062a\u062e\u0632\u064a\u0646\u0647\u0627 \u0645\u0624\u0642\u062a\u064b\u0627\u061f<\/li>\n\n\n\n<li>\u0645\u0627 \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u062a\u064a \u0646\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0627\u062a\u062e\u0627\u0630\u0647\u0627 \u0644\u0625\u0643\u0645\u0627\u0644 \u0627\u0644\u0641\u062d\u0635\u061f<\/li>\n<\/ul>\n\n\n\n<p>\u0628\u0639\u062f \u0628\u0639\u0636 \u0627\u0644\u0627\u0639\u062a\u0628\u0627\u0631\u0627\u062a \u0648\u0628\u0636\u0639 \u0633\u0627\u0639\u0627\u062a \u0645\u0646 \u0627\u0644\u0639\u0645\u0644 \u0645\u0639 \u0645\u062b\u0627\u0644 \u0627\u0644\u0645\u0633\u062a\u0646\u062f\u0627\u062a <em>.yml<\/em> \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0628\u062f\u0648 \u0627\u0644\u0645\u0644\u0641 \u0647\u0643\u0630\u0627<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"yaml\" class=\"language-yaml\">\u0627\u0644\u0627\u0633\u0645: \u062c\u0648\u062f\u0629 \u0627\u0644\u0643\u0648\u062f\n\n\u0639\u0644\u0649: '\u062f\u0641\u0639'\n\n\u0627\u0644\u0648\u0638\u0627\u0626\u0641\n  \u062c\u0648\u062f\u0629 \u0627\u0644\u0643\u0648\u062f\n    \u0627\u0644\u0627\u0633\u0645: \u0643\u0648\u062f \u0645\u0635\u062f\u0631 \u0627\u0644\u0648\u0628\u0631\n    \u0627\u0644\u062a\u0634\u063a\u064a\u0644: ubuntu-latest\n    \u0627\u0644\u062e\u0637\u0648\u0627\u062a:\n    - \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0627\u062a: \u0627\u0644\u0625\u062c\u0631\u0627\u0621\u0627\u062a\/\u0627\u0644\u062a\u062d\u0642\u0642@v1\n\n    - \u0627\u0644\u0627\u0633\u0645: \u0625\u0639\u062f\u0627\u062f \u0627\u0644\u0639\u0642\u062f\u0629\n      \u064a\u0633\u062a\u062e\u062f\u0645: \u0627\u0644\u0625\u062c\u0631\u0627\u0621\u0627\u062a\/\u0625\u0639\u062f\u0627\u062f \u0627\u0644\u0639\u0642\u062f\u0629@v1\n      \u0645\u0639:\n        \u0625\u0635\u062f\u0627\u0631 \u0627\u0644\u0639\u0642\u062f\u0629: '12.1'\n\n    - \u0627\u0644\u0627\u0633\u0645: \u062a\u0628\u0639\u064a\u0627\u062a \u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0624\u0642\u062a\n      \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0627\u062a: \u0627\u0644\u0625\u062c\u0631\u0627\u0621\u0627\u062a\/\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0624\u0642\u062a@v1\n      \u0645\u0639:\n        \u0627\u0644\u0645\u0633\u0627\u0631: .\/node_modules\n        \u0627\u0644\u0645\u0641\u062a\u0627\u062d: $(( runner.OS ))-dependencies-$(( hashFiles(<strong>**\/package-lockage-lock.json\"))<\/strong> ))\n        \u0645\u0641\u0627\u062a\u064a\u062d \u0627\u0644\u0627\u0633\u062a\u0639\u0627\u062f\u0629 |\n          $(( runner.OS ))-\u0627\u0644\u062a\u0628\u0639\u064a\u0629-$(( env.cache-name ))-\n          $(( runner.OS ))-\u0627\u0644\u062a\u0628\u0639\u064a\u0627\u062a-\n          $(( runner.OS ))-\n\n    - \u0627\u0644\u0627\u0633\u0645: \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u062a\u0628\u0639\u064a\u0627\u062a\n      \u062a\u0634\u063a\u064a\u0644 |\n        \u062a\u062b\u0628\u064a\u062a npm\n\n    - \u0627\u0644\u0627\u0633\u0645: \u0645\u0644\u0641\u0627\u062a \u0627\u0644\u0648\u0628\u0631\n      \u062a\u0634\u063a\u064a\u0644: |\n        \u062a\u0634\u063a\u064a\u0644 npm lint<\/code><\/pre>\n\n\n\n<p>\u064a\u0648\u0641\u0631 GitHub \u062c\u0645\u064a\u0639 \u0627\u0644\u0623\u0634\u064a\u0627\u0621 \u0627\u0644\u0628\u064a\u0626\u064a\u0629 \u0627\u0644\u062a\u064a \u0646\u062d\u062a\u0627\u062c\u0647\u0627. \u0641\u064a \u0627\u0644\u0633\u0637\u0631 \u0627\u0644\u0623\u062e\u064a\u0631 \u0646\u0642\u0648\u0645 \u0628\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0623\u0645\u0631 <strong><em>\u062a\u0634\u063a\u064a\u0644 npm lint<\/em><\/strong> \u0648\u0627\u0644\u062a\u064a \u0644\u0645 \u062a\u0643\u0646 \u0645\u062d\u062f\u062f\u0629 \u0645\u0646 \u0642\u0628\u0644:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">\"\u0646\u0635\u0648\u0635\": {\n    \"lint\": \"npm run lint: js &amp; npm run lint: scss\"\n}<\/code><\/pre>\n\n\n\n<p>\u0644\u0627\u062d\u0638 \u0623\u0646\u0647 \u0641\u064a \u0633\u064a\u0631 \u0627\u0644\u0639\u0645\u0644 \u0644\u062f\u064a\u0646\u0627\u060c \u0644\u0627 \u0623\u0633\u062a\u062e\u062f\u0645 <strong>:: \u0627\u0644\u0625\u0635\u0644\u0627\u062d<\/strong> \u0627\u0644\u0623\u0648\u0627\u0645\u0631.<\/p>\n\n\n\n<p>\u0639\u0646\u062f \u0627\u0644\u0627\u0646\u062a\u0647\u0627\u0621 \u0645\u0646 \u0643\u0644 \u0647\u0630\u0647 \u0627\u0644\u062e\u0637\u0648\u0627\u062a\u060c \u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0627\u0633\u062a\u0645\u062a\u0627\u0639 \u0628\u0647\u0630\u0627 \u0627\u0644\u0625\u062e\u0631\u0627\u062c \u0627\u0644\u062c\u0645\u064a\u0644 \u0645\u0646 GitHub \u0642\u0628\u0644 \u062f\u0645\u062c \u0637\u0644\u0628 \u0627\u0644\u0633\u062d\u0628 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643: <img decoding=\"async\" src=\"https:\/\/camo.githubusercontent.com\/ec82df2be0b1977d857d5f5c1d2d893010fc44a4\/68747470733a2f2f692e696d6775722e636f6d2f425848465370372e706e67\" alt=\"\"> <img decoding=\"async\" src=\"https:\/\/camo.githubusercontent.com\/00e93d296b7bf5b089c7b785ecc1cbd18de54ead\/68747470733a2f2f696d6775722e636f6d2f6f63736e6762362e706e67\" alt=\"\"><\/p>","protected":false},"excerpt":{"rendered":"<p>\u062a\u0639\u062f \u062c\u0648\u062f\u0629 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u062c\u0632\u0621\u064b\u0627 \u0645\u0647\u0645\u064b\u0627 \u0645\u0646 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u0637\u0648\u064a\u0631\u060c \u062e\u0627\u0635\u0629\u064b \u0639\u0646\u062f\u0645\u0627 \u062a\u0631\u064a\u062f \u0627\u0644\u0639\u0645\u0644 \u0628\u0643\u0641\u0627\u0621\u0629 \u0639\u0644\u0649 \u0627\u0644\u0645\u062f\u0649 \u0627\u0644\u0637\u0648\u064a\u0644. \u0647\u0646\u0627\u0643 \u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0627\u0644\u0623\u0633\u0627\u0644\u064a\u0628 \u0648\u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a\u060c \u0628\u0645\u0627 \u0641\u064a \u0630\u0644\u0643 \u0627\u0644\u0645\u0646\u0647\u062c\u064a\u0627\u062a \u0627\u0644\u0631\u0634\u064a\u0642\u0629 \u0628\u0623\u0643\u0645\u0644\u0647\u0627\u060c \u0648\u0644\u0643\u0646 \u0645\u0639\u0638\u0645\u0647\u0627 \u064a\u062a\u0639\u0644\u0642 \u0628\u0645\u0634\u0631\u0648\u0639 \u0643\u0628\u064a\u0631 \u0648\u0645\u0624\u0633\u0633\u064a \u064a\u0642\u0648\u0645 \u0628\u0647 6 \u0623\u0634\u062e\u0627\u0635 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644.<\/p>","protected":false},"author":2,"featured_media":3525,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3524","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project - The Codest<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/ar\/\u0627\u0644\u0645\u062f\u0648\u0646\u0629\/\u0623\u0648\u0644-5-\u062e\u0637\u0648\u0627\u062a-\u0633\u0647\u0644\u0629-\u0639\u0627\u0644\u064a\u0629-\u0627\u0644\u062c\u0648\u062f\u0629-\u0644\u0646\u0633\u0627\u0644\u0629-\u0627\u0644\u062a\/\" \/>\n<meta property=\"og:locale\" content=\"ar_AR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project\" \/>\n<meta property=\"og:description\" content=\"Code quality is a crucial part of the development process, especially when you want to work efficiently in a long-term manner. There are many approaches and best practices, including whole agile methodologies stuff, but most of them relate to some big, enterprise project conducted by at least 6 people.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/ar\/\u0627\u0644\u0645\u062f\u0648\u0646\u0629\/\u0623\u0648\u0644-5-\u062e\u0637\u0648\u0627\u062a-\u0633\u0647\u0644\u0629-\u0639\u0627\u0644\u064a\u0629-\u0627\u0644\u062c\u0648\u062f\u0629-\u0644\u0646\u0633\u0627\u0644\u0629-\u0627\u0644\u062a\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-14T08:51:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-24T11:32:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u062f\u0642\u0627\u0626\u0642\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project\",\"datePublished\":\"2019-04-14T08:51:00+00:00\",\"dateModified\":\"2026-04-24T11:32:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\"},\"wordCount\":1187,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-137.jpg\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\",\"name\":\"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-137.jpg\",\"datePublished\":\"2019-04-14T08:51:00+00:00\",\"dateModified\":\"2026-04-24T11:32:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#breadcrumb\"},\"inLanguage\":\"ar\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-137.jpg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/cover-image-137.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ar\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ar\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/ar\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u0627\u0644\u062c\u0648\u062f\u0629 \u0623\u0648\u0644\u0627\u064b! 5 \u062e\u0637\u0648\u0627\u062a \u0633\u0647\u0644\u0629 \u0644\u0646\u0633\u0627\u0644\u0629 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643 \u0645\u0639 \u0633\u064a\u0631 \u0639\u0645\u0644 GitHub \u0641\u064a \u0645\u0634\u0631\u0648\u0639 JavaScript - The Codest","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/ar\/\u0627\u0644\u0645\u062f\u0648\u0646\u0629\/\u0623\u0648\u0644-5-\u062e\u0637\u0648\u0627\u062a-\u0633\u0647\u0644\u0629-\u0639\u0627\u0644\u064a\u0629-\u0627\u0644\u062c\u0648\u062f\u0629-\u0644\u0646\u0633\u0627\u0644\u0629-\u0627\u0644\u062a\/","og_locale":"ar_AR","og_type":"article","og_title":"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project","og_description":"Code quality is a crucial part of the development process, especially when you want to work efficiently in a long-term manner. There are many approaches and best practices, including whole agile methodologies stuff, but most of them relate to some big, enterprise project conducted by at least 6 people.","og_url":"https:\/\/thecodest.co\/ar\/\u0627\u0644\u0645\u062f\u0648\u0646\u0629\/\u0623\u0648\u0644-5-\u062e\u0637\u0648\u0627\u062a-\u0633\u0647\u0644\u0629-\u0639\u0627\u0644\u064a\u0629-\u0627\u0644\u062c\u0648\u062f\u0629-\u0644\u0646\u0633\u0627\u0644\u0629-\u0627\u0644\u062a\/","og_site_name":"The Codest","article_published_time":"2019-04-14T08:51:00+00:00","article_modified_time":"2026-04-24T11:32:09+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","type":"image\/jpeg"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"6 \u062f\u0642\u0627\u0626\u0642"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project","datePublished":"2019-04-14T08:51:00+00:00","dateModified":"2026-04-24T11:32:09+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/"},"wordCount":1187,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","articleSection":["Software Development"],"inLanguage":"ar","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/","url":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/","name":"\u0627\u0644\u062c\u0648\u062f\u0629 \u0623\u0648\u0644\u0627\u064b! 5 \u062e\u0637\u0648\u0627\u062a \u0633\u0647\u0644\u0629 \u0644\u0646\u0633\u0627\u0644\u0629 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643 \u0645\u0639 \u0633\u064a\u0631 \u0639\u0645\u0644 GitHub \u0641\u064a \u0645\u0634\u0631\u0648\u0639 JavaScript - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","datePublished":"2019-04-14T08:51:00+00:00","dateModified":"2026-04-24T11:32:09+00:00","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#breadcrumb"},"inLanguage":"ar","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/"]}]},{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/cover-image-137.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/quality-first-5-easy-steps-to-lint-your-code-with-github-workflows-in-javascript-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Quality first! 5 easy steps to lint your code with GitHub workflows in JavaScript project"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ar"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"ar","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/ar\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/posts\/3524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/comments?post=3524"}],"version-history":[{"count":9,"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/posts\/3524\/revisions"}],"predecessor-version":[{"id":8622,"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/posts\/3524\/revisions\/8622"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/media\/3525"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/media?parent=3524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/categories?post=3524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/ar\/wp-json\/wp\/v2\/tags?post=3524"}],"curies":[{"name":"\u062f\u0628\u0644\u064a\u0648 \u0628\u064a","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}