DUNE-BUILD(1) Dune Manual DUNE-BUILD(1)

dune-build - ساخت هدف‌های مشخص‌شده، یا هدف‌های پیش‌فرض در صورت مشخص نشدن هیچ هدفی

dune build [OPTION]… [TARGET]…

هدف‌هایی که با @ شروع می‌شوند، به عنوان نام مستعار (alias) تفسیر می‌شوند.

--action-stderr-on-success=VAL
مشابه --action-stdout-on-success اما برای خطای استاندارد به جای خروجی استاندارد. یک مقدار پیش‌فرض مناسب برای مخازن بزرگ تک‌مخزنی (monorepo)، گزینهٔ --action-stdout-on-success=swallow --action-stderr-on-success=must-be-empty است. این کار تضمین می‌کند که یک ساخت موفق، خروجی خالی و «تمیز» داشته باشد.
--action-stdout-on-success=VAL
تعیین نحوهٔ برخورد با خروجی استاندارد کنش‌ها در هنگام موفقیت آن‌ها. مقادیر ممکن عبارتند از: print برای چاپ مستقیم آن در خروجی Dune، swallow برای نادیده گرفتن کامل آن، و must-be-empty برای الزام به اینکه کنش نباید چیزی چاپ کرده باشد. با انتخاب must-be-empty، اگر کنشی چیزی در خروجی استاندارد خود چاپ کند، Dune آن را ناموفق تلقی خواهد کرد. پیش‌فرض print است.
--alias=ALIAS
ساخت ALIAS تنها در دایرکتوری والد آن. معادل با هدف ساخت @@ALIAS است. مثال: --alias dir/foo نام مستعار foo را تنها در dir/ می‌سازد. قابل تکرار است.
--alias-rec=ALIAS
ساخت نام مستعار ALIAS در دایرکتوری والد آن و تمام زیردایرکتوری‌ها. معادل با هدف ساخت @ALIAS است. مثال: --alias-rec dir/foo نام مستعار foo را در dir/ و تمام زیردایرکتوری‌های آن می‌سازد. قابل تکرار است.
--build-info
نمایش اطلاعات ساخت.
--display-separate-messages
جداسازی پیام‌های خطا با یک خط خالی.
--error-reporting=VAL (absent=deterministic)
کنترل زمان گزارش خطاهای ساخت. مقدار early خطاها را به محض کشف گزارش می‌کند. مقدار deterministic خطاها را در پایان ساخت با ترتیبی معین گزارش می‌کند. مقدار twice هر خطا را دو بار گزارش می‌کند: یک بار به محض کشف خطا و بار دیگر در پایان ساخت با ترتیبی معین.
-f, --force
اجبار به اجرای مجدد کنش‌های مرتبط با نام‌های مستعار، حتی اگر وابستگی‌های آن‌ها تغییر نکرده باشد.
--file-watcher=VAL (absent=automatic)
سازوکار تشخیص تغییرات در کد مبدأ. مقدار Automatic برای اینکه dune یک برنامهٔ خارجی را برای تشخیص تغییرات اجرا کند. مقدار Manual برای اینکه تغییر فایل‌ها به صورت دستی به dune اطلاع داده شود.
--passive-watch-mode
مشابه [--watch]، اما فرایند ساخت تنها زمانی آغاز می‌شود که از بیرون توسط یک RPC دستور داده شود.
--sandbox=VAL (absent DUNE_SANDBOX env)
تنظیم حالت ایزوله‌سازی (sandboxing). برخی کنش‌ها نیازمند حالت ایزوله‌سازی خاصی هستند، بنابراین این تنظیم را نادیده خواهند گرفت. مقادیر مجاز عبارتند از: none، symlink، copy، hardlink.
--stop-on-first-error
متوقف کردن ساخت به محض مواجهه با اولین خطا.
-w, --watch
به جای پایان دادن به ساخت پس از اتمام، به طور مداوم منتظر تغییرات فایل بماند.
--wait-for-filesystem-clock
ابزار Dune برای بهبود کارایی افزایشی، خلاصهٔ (digest) محتوای فایل‌ها را محاسبه می‌کند. این خلاصه‌ها خودشان در حافظهٔ نهان نگه‌داری می‌شوند. در برخی موارد، Dune برای اطمینان از صحت عملکرد نیاز دارد برخی از ورودی‌های حافظهٔ نهان خلاصه‌ها را دور بریزد. این گزینه باعث می‌شود Dune منتظر بماند تا ساعت سیستم‌فایل جلو برود تا نیازی به دور ریختن چیزی نباشد. شما احتمالاً نیازی به این گزینه ندارید؛ این گزینه بیشتر برای توسعه‌دهندگان Dune به منظور بازتولیدپذیرتر کردن آزمون‌های حافظهٔ نهان خلاصه‌ها مفید است.

این گزینه‌ها بین تمامی دستورها مشترک هستند.

--always-show-command-line
همیشه خط فرمان کامل برنامه‌های اجراشده توسط dune نمایش داده شود.
--auto-promote
ارتقای خودکار فایل‌ها (promote). این کار مشابه اجرای dune promote پس از ساخت است.
--build-dir=FILE (absent DUNE_BUILD_DIR env)
دایرکتوری ساخت مشخص‌شده. در صورت مشخص نشدن _build خواهد بود
--cache=VAL (absent DUNE_CACHE env)
فعال یا غیرفعال کردن حافظهٔ نهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). مقدار پیش‌فرض `enabled-except-user-rules' است.
--cache-check-probability=VAL (absent DUNE_CACHE_CHECK_PROBABILITY env)
بررسی بازتولیدپذیری ساخت با اجرای مجدد قواعد به‌طور تصادفی انتخاب‌شده و مقایسهٔ نتایج آن‌ها با موارد ذخیره‌شده در حافظهٔ نهان Dune. نکته: با افزایش احتمال این بررسی‌ها، فرایند ساخت کندتر می‌شود. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
--cache-storage-mode=VAL (absent DUNE_CACHE_STORAGE_MODE env)
حالت ذخیره‌سازی حافظهٔ نهان Dune (یکی از مقادیر auto، hardlink یا copy). پیش‌فرض `hardlink' است.
--config-file=FILE
بارگذاری این فایل پیکربندی به جای فایل پیش‌فرض.
--debug-backtraces
چاپ همیشگی ردگیری پشتهٔ (backtrace) استثناها.
--debug-dependency-path
در صورت بروز خطا، مسیر وابستگی از هدف‌های روی خط فرمان تا قاعده‌ای که شکست خورده چاپ شود.
--debug-package-logs (absent DUNE_DEBUG_PACKAGE_LOGS env)
چاپ همیشگی گزارش‌های استاندارد هنگام ساخت بسته‌ها
--default-target=TARGET (absent=@@default)
تنظیم هدف پیش‌فرضی که در صورت مشخص نشدن هیچ هدفی برای dune build استفاده می‌شود.
--diff-command=VAL (absent DUNE_DIFF_COMMAND env)
دستور شل برای مقایسهٔ تفاضلی (diff) فایل‌ها. برای غیرفعال کردن چاپ تفاضل از - استفاده کنید.
--disable-promotion (absent DUNE_DISABLE_PROMOTION env)
غیرفعال کردن تمام قواعد ارتقا
--display=MODE
کنترل حالت نمایش Dune. برای جزئیات بیشتر dune-config(5) را ببینید. مقادیر معتبر برای این گزینه عبارتند از progress، verbose، short، quiet یا tui.
--dump-gc-stats=FILE
تخلیهٔ آمار زباله‌روب (garbage collector) در یک فایل پس از اتمام ساخت.
--help[=FMT] (default=auto)
نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از auto، pager، groff یا plain باشد. با auto، هرگاه متغیر محیطی TERM برابر dumb یا تعریف‌نشده باشد، قالب به صورت pager یا plain خواهد بود.
--ignore-promoted-rules
نادیده گرفتن قواعد دارای (mode promote)، به استثنای مواردی که دارای (only ...) هستند. متغیر %{ignoring_promoted_rules} در فایل‌های dune مشخص می‌کند که این گزینه مشخص شده است یا خیر.
--instrument-with=BACKENDS (absent DUNE_INSTRUMENT_WITH env)
فعال‌سازی ابزار دقیق (instrumentation) توسط BACKENDS. آرگومان BACKENDS فهرستی از نام‌های کتابخانه‌هاست که با کاما از هم جدا شده‌اند و هر یک باید یک پس‌بخش ابزار دقیق را اعلان کرده باشند.
-j JOBS (absent DUNE_JOBS env)
اجرای حداکثر JOBS دستور به صورت هم‌زمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
--no-buffer
عدم ذخیرهٔ خروجی دستورهای اجراشده توسط dune در میان‌گیر (buffer). به طور پیش‌فرض dune خروجی زیردستورها را میان‌گیری می‌کند تا از تداخل آن‌ها هنگام اجرای موازی چندین دستور جلوگیری شود. با این حال، این موضوع می‌تواند در هنگام اشکال‌زدایی آزمون‌های طولانی مشکل‌ساز شود. با گزینهٔ --no-buffer، دستورها دسترسی مستقیم به ترمینال دارند. توجه داشته باشید که در نتیجه، خروجی آن‌ها در فایل گزارش ثبت نخواهد شد. برای جلوگیری از تداخل، باید این گزینه را همراه با -j 1 استفاده کنید. علاوه بر این، باید از --verbose نیز استفاده کنید تا مطمئن شوید دستورها پیش از اجرا چاپ می‌شوند.
--no-config
عدم بارگذاری فایل پیکربندی
--no-print-directory
عدم نمایش پیام‌های "Entering directory".
--only-packages=PACKAGES
نادیده گرفتن بندهایی (stanzas) که به بسته‌ای ارجاع می‌دهند که در PACKAGES نیست. آرگومان PACKAGES فهرستی از نام‌های بسته‌هاست که با کاما از هم جدا شده‌اند. توجه داشته باشید که این کار تأثیری مشابه با حذف بندهای مربوطه از فایل‌های dune دارد. این گزینه عمدتاً برای انتشار نسخه‌های نهایی در نظر گرفته شده است. در طول توسعه، احتمالاً آنچه می‌خواهید ساخت یک هدف مشخص <package>.install است.
-p PACKAGES, --for-release-of-packages=PACKAGES (required)
کوتاه‌نوشتی برای --release --pkg=disabled --only-packages PACKAGE. هنگامی که پروژهٔ شما شامل چندین بسته است، برای ساختن تنها موارد ضروری و همچنین دستیابی به ساخت‌های بازتولیدپذیر، باید از این گزینه در فایل‌های <package>.opam خود استفاده کنید.
--pkg=VAL
فعال یا غیرفعال کردن مدیریت بسته‌ها. رفتار پیش‌فرض به وجود یک دایرکتوری قفل بستگی دارد.
--profile=VAL (absent DUNE_PROFILE env)
انتخاب نمایهٔ ساخت، برای نمونه dev یا release. پیش‌فرض dev است.
--promote-install-files[=VAL] (default=true)
ارتقای تمام فایل‌های <package>.install تولیدشده به درخت مبدأ.
--release
قرار دادن dune در حالت بازتولیدپذیر release. کوتاه‌نوشتی برای --root . --ignore-promoted-rules --no-config --profile release --always-show-command-line --promote-install-files --require-dune-project-file --default-target @install. برای ساخت‌های نسخهٔ انتشار باید از این گزینه استفاده کنید. برای نمونه، در فایل‌های <package>.opam خود باید این گزینه را به کار ببرید؛ به جز زمانی که از قبل از -p استفاده کرده باشید، زیرا -p متضمن این گزینه است.
--require-dune-project-file[=VAL] (default=true)
شکست عملیات در صورت موجود نبودن فایل dune-project.
--root=DIR (absent DUNE_ROOT env)
استفاده از این دایرکتوری به عنوان ریشهٔ فضای کاری به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدف‌های ارائه‌شده در خط فرمان را تغییر نمی‌دهد. این گزینه تنها برای اسکریپت‌ها در نظر گرفته شده است.
--store-orig-source-dir (absent DUNE_STORE_ORIG_SOURCE_DIR env)
ذخیرهٔ مکان اصلی مبدأ در فرادادهٔ بستهٔ dune-package.
--target-exec=TOOLCHAIN=CMD (absent DUNE_TARGET_EXEC env)
دستور لفاف برای اجرای فایل‌های اجرایی هدف هنگام کامپایل متقابل (cross-compiling). قالب: TOOLCHAIN=CMD (برای نمونه، 'windows=wine').
--terminal-persistence=MODE
تغییر نحوهٔ نمایش گزارش نتایج ساخت در کنسول بین ساخت‌های مجدد در هنگام حضور در حالت --watch. حالت‌های پشتیبانی‌شده: preserve، clear-on-rebuild، clear-on-rebuild-and-flush-history.
--trace-file=FILE
خروجی داده‌های ردگیری در قالب catapult (سازگار با chrome://tracing).
--verbose
مشابه با --display verbose
--version
نمایش اطلاعات نسخه.
--watch-exclusions=REGEX
افزودن یک عبارت باقاعدهٔ POSIX که دایرکتوری‌های منطبق را از `dune build --watch` مستثنی می‌کند. گزینهٔ --watch-exclusions برای افزودن چندین مورد استثنا می‌تواند تکرار شود. همچنین می‌توان از نقطه‌ویرگول به عنوان جداکننده استفاده کرد. اگر هیچ استثنایی ارائه نشود، مجموعه‌ای استاندارد از استثناها به کار گرفته می‌شود؛ با این حال، اگر یک یا چند گزینهٔ --watch-exclusions مشخص شود، هیچ‌یک از استثناهای استاندارد اعمال نخواهند شد. استثناهای استاندارد عبارتند از: ^_opam /_opam ^_esy /_esy ^\.#.* /\.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$ /.git /.hg :/windows
--workspace=FILE (absent DUNE_WORKSPACE env)
استفاده از این فایل فضای کاری مشخص به جای جستجوی خودکار آن.
-x VAL (absent DUNE_CROSS_TARGET env)
کامپایل متقابل با استفاده از این زنجیره ابزار.

برای راهنمایی در مورد یک دستور خاص از `dune COMMAND --help' استفاده کنید.

دستور dune build با این کدها خارج می‌شود:

0
در صورت موفقیت.
1
در صورت بروز خطا.
130
در صورتی که توسط یک سیگنال متوقف شود.

این متغیرهای محیطی بر اجرای build تأثیر می‌گذارند:

اگر مقداری غیر از 0 باشد، رنگ‌های ANSI پشتیبانی می‌شوند و زمانی که خروجی برنامه پایپ نشده باشد باید استفاده شوند. اگر برابر 0 باشد، کدهای فرار رنگی ANSI در خروجی درج نمی‌شوند
اگر مقداری غیر از 0 باشد، رنگ‌های ANSI در هر حالتی باید فعال باشند.
دایرکتوری ساخت مشخص‌شده. در صورت مشخص نشدن _build است
فعال یا غیرفعال کردن حافظهٔ نهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). پیش‌فرض `enabled-except-user-rules' است.
بررسی بازتولیدپذیری ساخت با اجرای مجدد قواعد به‌طور تصادفی انتخاب‌شده و مقایسهٔ نتایج آن‌ها با موارد ذخیره‌شده در حافظهٔ نهان Dune. نکته: با افزایش احتمال این بررسی‌ها، فرایند ساخت کندتر می‌شود. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
در صورت تنظیم، مکان تمامی حافظه‌های نهان مختلف مورد استفادهٔ dune را تعیین می‌کند.
حالت ذخیره‌سازی حافظهٔ نهان Dune (یکی از مقادیر auto، hardlink یا copy). پیش‌فرض `hardlink' است.
کامپایل متقابل با استفاده از این زنجیره ابزار.
چاپ همیشگی گزارش‌های استاندارد هنگام ساخت بسته‌ها
دستور شل برای مقایسهٔ تفاضلی فایل‌ها. برای غیرفعال کردن چاپ تفاضل از - استفاده کنید.
غیرفعال کردن تمام قواعد ارتقا
فعال‌سازی ابزار دقیق توسط BACKENDS. آرگومان BACKENDS فهرستی از نام‌های کتابخانه‌هاست که با کاما از هم جدا شده‌اند و هر یک باید یک پس‌بخش ابزار دقیق را اعلان کرده باشند.
اجرای حداکثر JOBS دستور به صورت هم‌زمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
نمایهٔ ساخت. در صورت مشخص نشدن dev، یا در صورت تنظیم بودن -p مقدار آن release خواهد بود.
استفاده از این دایرکتوری به عنوان ریشهٔ فضای کاری به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدف‌های ارائه‌شده در خط فرمان را تغییر نمی‌دهد. این گزینه تنها برای اسکریپت‌ها در نظر گرفته شده است.
حالت ایزوله‌سازی پیش‌فرض مورد استفاده. (گزینهٔ --sandbox را ببینید)
ذخیرهٔ مکان اصلی مبدأ در فرادادهٔ بستهٔ dune-package.
دستور لفاف برای اجرای فایل‌های اجرایی هدف هنگام کامپایل متقابل. قالب: TOOLCHAIN=CMD (برای نمونه، 'windows=wine').
استفاده از این فایل فضای کاری مشخص به جای جستجوی خودکار آن.

گزارش‌های باگ را در https://github.com/ocaml/dune/issues بررسی کنید

dune(1)

1.
ساخت تمامی هدف‌ها در درخت مبدأ فعلی:
dune build
2.
ساخت هدف‌ها در دایرکتوری `./foo/bar':
dune build ./foo/bar
3.
ساخت حداقل مجموعهٔ هدف‌های لازم برای ابزارهایی مانند Merlin (مفید برای تشخیص سریع خطاها):
dune build @check
4.
اجرای تمامی ابزارهای قالب‌بندی کد به صورت درجا (in-place):
dune build --auto-promote @fmt
Dune 3.24.2