[{"data":1,"prerenderedAt":333},["ShallowReactive",2],{"docs-/docs/development/ignoring-files":3},{"id":4,"title":5,"body":6,"description":325,"extension":326,"meta":327,"navigation":328,"path":329,"seo":330,"stem":331,"__hash__":332},"docs/docs/development/ignoring-files.md","Ignoring files",{"type":7,"value":8,"toc":318},"minimark",[9,13,25,32,37,40,86,89,93,103,218,238,242,248,258,261,287,291,305,311],[10,11,5],"h1",{"id":12},"ignoring-files",[14,15,16,17,24],"p",{},"Not every file in your func folder belongs to the func. Editor settings, virtual environments, caches, and scratch notes are local clutter — they shouldn't sync to the sandbox, fill up the IDE file tree, or end up in a published version. An ",[18,19,20],"strong",{},[21,22,23],"code",{},".artifuncsignore"," file, placed at the root of your func, controls exactly which files are part of the func and which are skipped.",[14,26,27,28,31],{},"It uses the same syntax as ",[21,29,30],{},".gitignore",", so if you've written one of those, you already know how this works.",[33,34,36],"h2",{"id":35},"what-it-affects","What it affects",[14,38,39],{},"A path matched by your ignore rules is excluded everywhere a func's files are handled:",[41,42,43,63,74],"ul",{},[44,45,46,47,50,51,54,55,58,59,62],"li",{},"It never ",[18,48,49],{},"syncs to the sandbox"," — whether through live editing or the ",[21,52,53],{},"artifuncs"," CLI (",[21,56,57],{},"dev"," / ",[21,60,61],{},"push",").",[44,64,65,66,73],{},"It never appears in the ",[18,67,68],{},[69,70,72],"a",{"href":71},"/docs/development/ide","Web IDE"," file explorer.",[44,75,76,77,80,81,85],{},"It's never ",[18,78,79],{},"committed to your draft",", so it's never reviewed or ",[69,82,84],{"href":83},"/docs/development/publishing","published",".",[14,87,88],{},"Because ignored files don't count toward your published version, they also help you stay under the review limits (≤ 100 files, ≤ 1 MB each).",[33,90,92],{"id":91},"built-in-defaults","Built-in defaults",[14,94,95,96,99,100,102],{},"These patterns are ",[18,97,98],{},"always ignored",", even if you don't have an ",[21,101,23],{}," file at all. They cover the usual build and tooling artefacts:",[104,105,106,119],"table",{},[107,108,109],"thead",{},[110,111,112,116],"tr",{},[113,114,115],"th",{},"Pattern",[113,117,118],{},"What it is",[120,121,122,133,147,157,170,180,193,208],"tbody",{},[110,123,124,130],{},[125,126,127],"td",{},[21,128,129],{},".git/",[125,131,132],{},"Git metadata",[110,134,135,144],{},[125,136,137,140,141],{},[21,138,139],{},".venv/",", ",[21,142,143],{},"venv/",[125,145,146],{},"Python virtual environments",[110,148,149,154],{},[125,150,151],{},[21,152,153],{},"node_modules/",[125,155,156],{},"npm / pnpm packages",[110,158,159,167],{},[125,160,161,140,164],{},[21,162,163],{},"__pycache__/",[21,165,166],{},"*.pyc",[125,168,169],{},"Python bytecode caches",[110,171,172,177],{},[125,173,174],{},[21,175,176],{},".DS_Store",[125,178,179],{},"macOS folder metadata",[110,181,182,190],{},[125,183,184,140,187],{},[21,185,186],{},".idea/",[21,188,189],{},".vscode/",[125,191,192],{},"JetBrains / VS Code settings",[110,194,195,200],{},[125,196,197],{},[21,198,199],{},"files/",[125,201,202,203,207],{},"the per-session runtime I/O directory (see ",[69,204,206],{"href":205},"/docs/development/files","Files",")",[110,209,210,215],{},[125,211,212],{},[21,213,214],{},".artifuncs/",[125,216,217],{},"local CLI state",[219,220,221],"blockquote",{},[14,222,223,224,226,227,58,230,233,234,62],{},"Dependencies are reinstalled from your manifest on the sandbox, so there's no reason to sync ",[21,225,153],{}," or a virtualenv — that's why they're ignored by default. Declare deps in ",[21,228,229],{},"requirements.txt",[21,231,232],{},"package.json"," instead (see ",[69,235,237],{"href":236},"/docs/development/dependencies","Dependencies",[33,239,241],{"id":240},"adding-your-own-rules","Adding your own rules",[14,243,244,245,247],{},"Create a file named ",[21,246,23],{}," at the root of your func and list one pattern per line:",[249,250,255],"pre",{"className":251,"code":253,"language":254},[252],"language-text","# scratch files I don't want in the func\nscratch/\n*.log\nTODO.txt\n","text",[21,256,253],{"__ignoreMap":257},"",[14,259,260],{},"Standard gitignore syntax applies, matched relative to the func root:",[41,262,263,269,275,281],{},[44,264,265,268],{},[21,266,267],{},"dir/"," — ignore a whole directory.",[44,270,271,274],{},[21,272,273],{},"*.log"," — glob by extension.",[44,276,277,280],{},[21,278,279],{},"/secret.txt"," — a leading slash anchors the pattern to the func root.",[44,282,283,286],{},[21,284,285],{},"#"," — a comment line.",[33,288,290],{"id":289},"re-including-a-file","Re-including a file",[14,292,293,294,297,298,301,302,304],{},"Prefix a pattern with ",[21,295,296],{},"!"," to ",[18,299,300],{},"negate"," it — keep a file that an earlier rule would otherwise hide. A later rule wins over an earlier one, just like in ",[21,303,30],{},":",[249,306,309],{"className":307,"code":308,"language":254},[252],"# ignore all CSVs except the seed data the func needs at runtime\n*.csv\n!seed.csv\n",[21,310,308],{"__ignoreMap":257},[14,312,313,314,317],{},"You can negate a built-in default the same way (for example ",[21,315,316],{},"!.vscode/"," to let editor config travel with the func), though you'll rarely need to.",{"title":257,"searchDepth":319,"depth":319,"links":320},2,[321,322,323,324],{"id":35,"depth":319,"text":36},{"id":91,"depth":319,"text":92},{"id":240,"depth":319,"text":241},{"id":289,"depth":319,"text":290},"Use an .artifuncsignore file to keep build artefacts and local clutter out of your func — ignored files don't sync to the sandbox, show in the IDE, or get published.","md",{},true,"/docs/development/ignoring-files",{"title":5,"description":325},"docs/development/ignoring-files","p2ongwcBBGB8V3h3F-u7F1Ngwv6woj9aDBSLmkho0Jo",1784586443349]