dev.nix রেফারেন্স

এই পৃষ্ঠায় আপনার ওয়ার্কস্পেস এনভায়রনমেন্ট কনফিগারেশন ফাইলের স্কিমার বিবরণ রয়েছে, যা সর্বদা .idx/dev.nix এ অবস্থিত হওয়া উচিত।

নিক্স ভাষা সম্পর্কে জানতে, অফিসিয়াল নিক্স ভাষার টিউটোরিয়ালটি দেখুন।

প্যাকেজ

পরিবেশে ইনস্টল করার জন্য প্যাকেজ।

ইনস্টল করার জন্য প্যাকেজ নির্বাচন করতে আপনি pkgs আর্গুমেন্ট ব্যবহার করতে পারেন, উদাহরণস্বরূপ pkgs.python3 । উল্লেখ্য যে pkgs এর বিষয়বস্তু নির্বাচিত channel চ্যানেল বিকল্পের উপর নির্ভর করে।

উদাহরণ:

{pkgs, ...}: {
  channel = "stable-23.11";
  packages = [pkgs.vim];
}

আপনি এখানে উপলব্ধ প্যাকেজগুলি অনুসন্ধান করতে পারেন: stable-23.11 বা অস্থির

প্রকার: প্যাকেজের তালিকা

ডিফল্ট: [ ]

চ্যানেল

nixpkgs চ্যানেল ব্যবহার করতে হবে।

এই চ্যানেলটি pkgs আর্গুমেন্টের বিষয়বস্তু সংজ্ঞায়িত করে।

প্রকার: "stable-23.05", "stable-23.11", "stable-24.05", "unstable" এর মধ্যে একটি

ডিফল্ট: "stable-23.11"

env

এনভায়রনমেন্ট ভেরিয়েবল যা ডেভেলপার এনভায়রনমেন্টের ভিতরে সেট করা আছে।

এগুলি আপনার সমস্ত শেল এবং পূর্বরূপ সার্ভারে প্রচারিত হয়। এনভায়রনমেন্ট ভেরিয়েবল বিশেষভাবে উপযোগী হতে পারে যদি আপনার অ্যাপ্লিকেশনের জন্য ভেরিয়েবলের একটি নির্দিষ্ট সেটের প্রয়োজন হয়।

প্রতিটি ভেরিয়েবলের মান একটি স্ট্রিং বা স্ট্রিংগুলির একটি তালিকা হতে পারে। পরেরটি সমন্বিত, কোলন অক্ষরগুলির সাথে ছেদযুক্ত।

PATH অবশ্যই একটি তালিকা হতে হবে, কারণ এটি সর্বদা প্রসারিত এবং সম্পূর্ণরূপে প্রতিস্থাপিত হয় না।

উদাহরণ:

{pkgs, ...}: {
  env = {
    HELLO = "world";
    # append an entry to PATH
    PATH = ["/some/path/bin"];
  };
}

প্রকার: (স্ট্রিংয়ের তালিকা) বা অন্য কিছুর অ্যাট্রিবিউট সেট

ডিফল্ট: { }

idx.extensions

কোড এক্সটেনশনগুলি আপনি আপনার IDX ওয়ার্কস্পেসে ইনস্টল করতে চান।

এটি সম্পূর্ণরূপে যোগ্য এক্সটেনশন আইডিগুলির একটি তালিকা, উদাহরণস্বরূপ ${publisherId}.${extensionId}

আপনি ওপেন VSX রেজিস্ট্রিতে উপলব্ধ এক্সটেনশনগুলির একটি তালিকা খুঁজে পেতে পারেন এবং ${publisherId}.${extensionId} দ্বারা আপনার dev.nix ফাইলে প্রবেশ করতে পারেন।

প্রকার: তালিকা (অ-খালি স্ট্রিং বা পথ)

ডিফল্ট: [ ]

idx.previews.enable

IDX পূর্বরূপ সক্রিয় করতে এটি true সেট করুন।

এই বৈশিষ্ট্যটি আপনার অ্যাপ্লিকেশানগুলিকে বিকাশ করার সাথে সাথে স্বয়ংক্রিয়ভাবে চালানো এবং পুনরায় লোড করার একটি উপায় প্রদান করে৷

প্রকার: বুলিয়ান

ডিফল্ট: true

উদাহরণ: true

idx.previews.previews

পূর্বরূপ কনফিগারেশন.

আপনার বিকাশকারী পরিবেশে আইডিএক্স এক্সিকিউট করা কমান্ডগুলিকে সংজ্ঞায়িত করুন।

উদাহরণ:

{pkgs, ...}: {
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = ["yes"];
        cwd = "subfolder";
        manager = "web";
        env = {
          HELLO = "world";
        };
      };
    };
  };
}

প্রকার: (সাবমডিউল) এর বৈশিষ্ট্য সেট

ডিফল্ট: { }

idx.previews.previews.<name>.activity

অ্যান্ড্রয়েড লঞ্চ কার্যকলাপ

প্রকার: স্ট্রিং

ডিফল্ট: ""

idx.previews.previews.<name>.command

কার্যকর করার আদেশ

প্রকার: স্ট্রিংয়ের তালিকা

ডিফল্ট: [ ]

idx.previews.previews.<name>.cwd

ওয়ার্কিং ডিরেক্টরি

প্রকার: স্ট্রিং

ডিফল্ট: ""

idx.previews.previews.<name>.env

এনভায়রনমেন্ট ভেরিয়েবল সেট করতে।

প্রকার: স্ট্রিং এর বৈশিষ্ট্য সেট

ডিফল্ট: { }

idx.previews.previews.<name>.manager

ম্যানেজার

প্রকার: "ওয়েব", "ফ্লাটার", "অ্যান্ড্রয়েড", "গ্রেডেল" এর একটি

idx.workspace.onCreate

প্রথমবার ওয়ার্কস্পেস তৈরি এবং খোলা হলে চালানোর জন্য কমান্ড।

এটি উন্নয়ন পরিবেশ সেটআপ করতে দরকারী হতে পারে। উদাহরণস্বরূপ, এখানে আমরা চালানোর জন্য npm install নির্দিষ্ট করছি:

{pkgs, ...}: {
  idx.workspace.onCreate = {
    npm-install = "npm install";
    # files to open when the workspace is first opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

প্রকার: বৈশিষ্ট্যের সেট (পাথ বা স্ট্রিং বা ({ openFiles = [ স্ট্রিং ];}))

ডিফল্ট: { }

idx.workspace.onStart

যখনই ওয়ার্কস্পেস খোলা হয় তখনই চালানোর কমান্ড।

এটি নির্মাণ পর্যবেক্ষক শুরু করতে দরকারী হতে পারে. উদাহরণস্বরূপ, এখানে আমরা চালানোর জন্য 2টি কমান্ড উল্লেখ করছি:

{pkgs, ...}: {
  idx.workspace.onStart = {
    npm-watch-fe = "npm run watch:frontend";
    npm-watch-be = "npm run watch:backend";
    # files to open when the workspace is (re)opened.
    default.openFiles = [ "src/index.ts" ];
  };
}

প্রকার: বৈশিষ্ট্যের সেট (পাথ বা স্ট্রিং বা ({ openFiles = [ স্ট্রিং ];}))

ডিফল্ট: { }

IDX পরিষেবা

ওয়ার্কস্পেস খোলার সময় সক্রিয় করার জন্য সাধারণ পরিষেবাগুলি৷

উদাহরণস্বরূপ, Postgres সক্ষম করতে এবং pgvector এক্সটেনশন ব্যবহার করতে, dev.nix এ নিম্নলিখিত যোগ করুন:

    services.postgres = {
      extensions = ["pgvector"];
      enable = true;
    };

নিম্নলিখিত বিভাগগুলি সমস্ত সমর্থিত পরিষেবা এবং তাদের কনফিগারযোগ্য বিকল্পগুলির তালিকা করে।

services.docker.enable

রুটলেস ডকার সক্রিয় করতে হবে কিনা।

প্রকার: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.mongodb.enable

MongoDB সার্ভার সক্রিয় করতে হবে কিনা।

প্রকার: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.mongodb.package

ব্যবহার করার জন্য MongoDB প্যাকেজ।

প্রকার: প্যাকেজ

ডিফল্ট: <derivation mongodb-6.0.11>

services.mongodb.port

মঙ্গোড বন্দরটি কনফিগার করবে।

ডিফল্টভাবে tcp অক্ষম থাকে এবং Mongod শুধুমাত্র /tmp/mongodb/mongodb.sock-এ শোনে। সংযোগ করতে, সংযোগ স্ট্রিং "mongodb://%2Ftmp%2Fmongodb%2Fmongodb.sock" ব্যবহার করুন

প্রকার: 16 বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; 0 এবং 65535 এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 0

services.mysql.enable

MySQL সার্ভার সক্রিয় করা হবে কিনা।

সার্ভার একটি পাসওয়ার্ডহীন ব্যবহারকারী রুট দিয়ে শুরু করা হয়। তাই অতিরিক্ত ব্যবহারকারী তৈরি করতে এবং ডেটাবেস তৈরি করতে mysql -u root ব্যবহার করুন। .

প্রকার: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.mysql.package

ব্যবহার করার জন্য MySQL প্যাকেজ।

প্রকার: প্যাকেজ

ডিফল্ট: pkgs.mysql

উদাহরণ: pkgs.mysql80

services.postgres.enable

PostgreSQL সার্ভার সক্রিয় করা হবে কিনা।

প্রকার: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.postgres.enableTcp

TCP-তে শোনার জন্য Postgres সক্রিয় করা হবে কিনা।

প্রকার: বুলিয়ান

ডিফল্ট: true

উদাহরণ: true

services.postgres.package

PostgreSQL প্যাকেজ ব্যবহার করার জন্য।

প্রকার: প্যাকেজ

ডিফল্ট: pkgs.postgresql

উদাহরণ: pkgs.postgresql_15

services.postgres.extensions

পোস্টগ্রেস এক্সটেনশন ইনস্টল করার জন্য।

প্রকার: তালিকার ("বয়স" এর মধ্যে একটি", "apache_datasketches", "cstore_fdw", "hypopg", "jsonb_deep_sum", "periods", "pg_auto_failover", "pg_bigm", "pg_cron", "pg_ed25519", "pg_embedding" , "pg_hint_plan", "pg_hll", "pg_ivm", "pg_net", "pg_partman", "pg_rational", "pg_relusage", "pg_repack", "pg_safeupdate", "pg_similarity", "pg_topn", "pg_uuidv7", " pgaudit", "pgjwt", "pgroonga", "pgrouting", "pgsql-http", "pgtap", "pgvector", "plpgsql_check", "plr", "plv8", "postgis", "promscale_extension", repmgr", "rum", "smlar", "tds_fdw", "temporal_tables", "timescaledb", "timescaledb-apache", "timescaledb_toolkit", "tsearch_extras", "tsja", "wal2json")

ডিফল্ট: [ ]

উদাহরণ: [ "pgvector" "postgis" ];

services.pubsub.enable

Google পাব/সাব এমুলেটর সক্ষম করবেন কিনা।

এমুলেটর ব্যবহার করার বিষয়ে আরও ডকুমেন্টেশন এখানে পাওয়া যাবে: https://cloud.google.com/pubsub/docs/emulator#using_the_emulator।

প্রকার: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.pubsub.port

পোর্ট কনফিগার করে Pub/Sub শুনবে।

প্রকার: 16 বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; 0 এবং 65535 এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 8085

services.pubsub.project-id

পাব/সাব এমুলেটর চালানোর জন্য ব্যবহার করার জন্য প্রকল্প আইডি। এই প্রকল্পটি শুধুমাত্র পরীক্ষার জন্য, এটির অস্তিত্ব থাকতে হবে না এবং শুধুমাত্র স্থানীয়ভাবে ব্যবহার করা হয়।

প্রকার: প্যাটার্নের সাথে মিলে যাওয়া স্ট্রিং [az][a-z0-9-]{5,29}

ডিফল্ট: "idx-pubsub-emulator"

services.redis.enable

Redis সার্ভার সক্রিয় করতে হবে কিনা।

প্রকার: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.redis.port

Redis যে পোর্ট শুনবে তা কনফিগার করে।

ডিফল্টভাবে tcp অক্ষম করা থাকে এবং redis শুধুমাত্র /tmp/redis/redis.sock এ শোনে।

প্রকার: 16 বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; 0 এবং 65535 এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 0

services.spanner.enable

Google ক্লাউড স্প্যানার এমুলেটর সক্ষম করবেন কিনা।

প্রকার: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.spanner.fault-injection

লেনদেনে র্যান্ডম ফল্ট ইনজেকশন সক্ষম করা হবে কিনা।

প্রকার: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.spanner.grpc-পোর্ট

TCP পোর্ট যেখানে এমুলেটর আবদ্ধ করা উচিত।

প্রকার: 16 বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; 0 এবং 65535 এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 9010

services.spanner.rest-port

যে পোর্টে REST অনুরোধগুলি পরিবেশিত হয়৷

প্রকার: 16 বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; 0 এবং 65535 এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 9020