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

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

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

প্যাকেজ

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

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

উদাহরণ:

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

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

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

ডিফল্ট: [ ]

চ্যানেল

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

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

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

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

env সম্পর্কে

ডেভেলপার পরিবেশের ভিতরে সেট করা পরিবেশের ভেরিয়েবল।

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

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

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

উদাহরণ:

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

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

ডিফল্ট: { }

idx.এক্সটেনশন

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

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

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

প্রকার: (খালি নয় এমন স্ট্রিং বা পথ) তালিকা

ডিফল্ট: [ ]

idx.previews.enable সম্পর্কে

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

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

ধরণ: বুলিয়ান

ডিফল্ট: true

উদাহরণ: true

idx.previews.previews সম্পর্কে

কনফিগারেশনের পূর্বরূপ দেখুন।

আপনার ডেভেলপার পরিবেশে IDX কোন কমান্ডগুলো কার্যকর করে তা নির্ধারণ করুন।

উদাহরণ:

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

ধরণ: (সাবমডিউল) এর অ্যাট্রিবিউট সেট

ডিফল্ট: { }

idx.previews.previews.<name>.কার্যকলাপ

অ্যান্ড্রয়েড লঞ্চ অ্যাক্টিভিটি

ধরণ: স্ট্রিং

ডিফল্ট: ""

idx.previews.previews.<name>.কমান্ড

কার্যকর করার জন্য কমান্ড

ধরণ: স্ট্রিং এর তালিকা

ডিফল্ট: [ ]

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 = [ স্ট্রিং ];})) এর অ্যাট্রিবিউট সেট

ডিফল্ট: { }

আমদানি

আপনি একটি আমদানি করা ফাইল দিয়ে আপনার dev.nix ফাইলটি প্রসারিত করতে পারেন।

# dev.nix
{ pkgs, ... }: {
  imports = [
    ./some-file.nix
  ];
  # ...
}
# some-file.nix
{ pkgs, ... }: {
  packages = [
    pkgs.python3
  ];
  # ...
}

dev.nix এ একটি কাস্টম .nix ফাইল আমদানি করার একাধিক কারণ থাকতে পারে:

  1. আপনার dev.nix ফাইলটি বড় এবং রক্ষণাবেক্ষণযোগ্যতা উন্নত করার জন্য আপনি এটিকে মডুলারাইজ করতে চান।

    { pkgs, ... }: {
      channel = "stable-24.11";
      # ...
      imports = [
        ./env-cfg.nix
        ./preview-config.nix
      ];
    }
    
  2. আপনি আপনার স্থানীয় পরিবেশের জন্য নির্দিষ্ট বিকল্পগুলি কনফিগার করতে চান এবং ফাইলটি আপনার .gitignore তালিকায় যুক্ত করতে চান।

    # dev.nix
    { pkgs, lib, ... }: {
      # ...
    
      imports = lib.optionals (builtins.pathExists ./dev.local.nix ) [ ./dev.local.nix ];
    }
    
    #.gitignore
    .idx/dev.local.nix
    

ধরণ: পথের তালিকা

ডিফল্ট: [ ]

সেবা

কর্মক্ষেত্র খোলার সময় সক্রিয় করার জন্য সাধারণ পরিষেবা।

উদাহরণস্বরূপ, 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

প্রকার: ১৬ বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; ০ থেকে ৬৫৫৩৫ এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 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 সম্পর্কে

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

প্রকার: তালিকা ("age", "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", "timescaldb", "timescaldb-apache", "timescaldb_toolkit", "tsearch_extras", "tsja", "wal2json")

ডিফল্ট: [ ]

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

services.pubsub.enable সম্পর্কে

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

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

ধরণ: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.pubsub.port সম্পর্কে

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

প্রকার: ১৬ বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; ০ থেকে ৬৫৫৩৫ এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 8085

services.pubsub.project-আইডি

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

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

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

services.redis.enable সম্পর্কে

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

ধরণ: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

পরিষেবা.redis.port

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

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

প্রকার: ১৬ বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; ০ থেকে ৬৫৫৩৫ এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 0

services.spanner.enable সম্পর্কে

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

ধরণ: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.spanner.fault-ইনজেকশন

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

ধরণ: বুলিয়ান

ডিফল্ট: false

উদাহরণ: true

services.spanner.grpc-পোর্ট

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

প্রকার: ১৬ বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; ০ থেকে ৬৫৫৩৫ এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 9010

services.spanner.rest-পোর্ট

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

প্রকার: ১৬ বিট স্বাক্ষরবিহীন পূর্ণসংখ্যা; ০ থেকে ৬৫৫৩৫ এর মধ্যে (উভয়ই অন্তর্ভুক্ত)

ডিফল্ট: 9020