node.js - Volta با سیستم yarn run build نمیتواند مسیر مشخص شده را پیدا کند
این اولین باری است که از ولتا استفاده میکنم، پس لطفاً با من همراه باشید.
من تایپاسکریپت، نود و یارن را بهصورت سراسری نصب کردهام
yarn -v >> 1.22.10
node -v >> v14.15.4
npm -v >> 6.14.10
این دستورات داخل و خارج از پوشه پروژه من کار میکنند و نتایج یکسانی دارند. با این حال، اگر از داخل vscode از yarn build استفاده کنم، خروجی یک خطا است که بیان میکند: سیستم نمیتواند مسیر مشخص شده را پیدا کند
اگر همان کار را از خارج از vscode انجام دهم، همان نتیجه را میگیرم:
اگر به پوشه node_modules/.bin داخل vscode بروم، فرمان هنوز کار نمیکند (این بار من فقط tsc را اجرا میکنم). خطا به شرح زیر است:
اصطلاح tsc یک فرمان cmdlet شناخته شده، تابع، فایل اسکریپت یا برنامه اجرایی نیست. بررسی کنید که نام به درستی نوشته شده است یا، در صورتی که مسیر دسترسی وجود دارد، اطمینان حاصل کنید که مسیر صحیح است و دوباره امتحان کنید.
اما اگر فرمان از خارج از vscode در یک پنجره cmd اجرا شود، همانطور که انتظار میرود کار میکند، زیرا tsc واقعاً آنجا است:
علاوه بر این، اگر من npm run build را داخل vscode اجرا کنم، دستور طبق انتظار عمل میکند. این فایل package.json من است:
{
"name": "socket-server",
"version": "1.0.0",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"license": "MIT",
"scripts": {
"build": "tsc",
"dev": "yarn build --watch --preserveWatchOutput",
"lint": "eslint src --ext js,ts",
"test": "jest"
},
"devDependencies": {
"eslint": "^7.19.0",
"jest": "^26.6.3",
"typescript": "^4.1.3"
},
"volta": {
"node": "14.15.4",
"yarn": "1.22.10"
}
}
من به ولتا شک دارم چون ولتا نسخهی یارن را مدیریت میکند، اما npm را نه؛ اما واقعاً نمیدانم مشکل چیست.
من از ویندوز استفاده میکنم و PATH من شامل موارد زیر است:
من کجا اشتباه میکنم؟
ویرایش: بله، میانبر دستور شل وجود دارد:
پاسخ شماره ۱
مشکل مربوط به vsCode است، شما باید code . را در cmd اجرا کنید، چون اگر Command Palette (Ctrl + Shift + P) را باز کنید و تایپ کنید
Shell Command: Install 'code' command in PATH
شما چیزی نخواهید دید، بعد از اجرای code . در cmd وقتی که باید مثل این عکس ببینید، همه چیز درست خواهد بود
پاسخ شماره ۲
من از وضعیت ویندوز مطمئن نیستم، اما معمولاً اسکریپتها در node_modules/.bin لینکهای نمادین به اسکریپتها هستند. برای مثال، node_modules/.bin/tsc ممکن است به node_modules/typescript/bin/tsc اشاره کند.
این در خارج از دایرکتوری کار میکند زیرا در این صورت از نسخهی سراسری tsc استفاده میکند.
با دیدن خطای شما، من مشکوک هستم که لینکهای نمادین خراب شدهاند. شاید فقط امتحان کنید که پوشه node_modules را حذف کرده و دوباره npm install را انجام دهید.
پیاس: من با ولتا آشنا نیستم، اما به نظر میرسد بیشتر یک مشکل مربوط به NPM باشد.






