'एनजी बिल्ड' के बाद कोणीय-क्ली में डिस्ट-फोल्डर पथ कैसे बदलें


112

मैं asp.net core के साथ कोणीय-क्ले का उपयोग करना चाहूंगा और मुझे यह जानना होगा कि मैं डिस्टर्ब फोल्डर का रास्ता कैसे बदल सकता हूं

जवाबों:


74

आप आउटपुट फ़ोल्डर को .angular-cli.json में अपडेट कर सकते हैं:

"outDir": "./location/toYour/dist"

14
क्या यह संभव है कि index.html को ./location/toYour/dist और जावास्क्रिप्ट बंडलों को एक उप फ़ोल्डर में रखा जाए। उदा ./location/toYour/dist/bundles
Naveed Ahmed

1
किसी को भी outDir आगे को अनुकूलित करने पर किसी भी अद्यतन का पता है? css / ts / अलग-अलग रास्तों में
fidev

190

इसका अधिक वर्तमान तरीका outDirसंपत्ति को अद्यतन करना है .angular-cli.json

ng buildआदेश तर्क --output-path(या -opछोटे के लिए) अभी भी भी समर्थित है, यदि आप एक से अधिक मान चाहते हैं जो उपयोगी हो सकता है, आप उन्हें अपने में बचा सकता है package.jsonके रूप में NPM स्क्रिप्ट।

सावधान:.angular-cli.json संपत्ति नहीं बुलाया जाता है output-pathकी तरह @ cwill747 द्वारा वर्तमान में स्वीकार किए जाते हैं जवाब कहते हैं। यही ng buildतर्क है।

यह outDirऊपर वर्णित के रूप में कहा जाता है, और यह appsसंपत्ति के तहत है ।

पुनश्च

(दिसंबर 2017)

इस उत्तर को जोड़ने के 1 साल बाद , किसी ने अनिवार्य रूप से एक ही जानकारी के साथ एक नया उत्तर जोड़ा, और मूल पोस्टर ने स्वीकार किए गए उत्तर को 1 वर्ष के उत्तरार्द्ध उत्तर में बदल दिया जिसमें इस एक की पहली पंक्ति में समान जानकारी थी।


3
क्या यह संभव है कि index.html को ./location/toYour/dist और JavaScript बंडलों को उप फ़ोल्डर में रखा जा सके। उदा ./location/toYour/dist/bundles
Naveed Ahmed

10
: डी। पीएस कड़वा है
सुनील कुमार

4
सबसे अच्छा PS मैंने यहाँ देखा है
Frenkey

वह शायद यहां अपने दोस्त का प्रचार कर रहा है, यह एक भ्रष्टाचार है
अलेक्जेंडर बोरोवोई

69

कोणीय 6+ के लिए चीजें थोड़ी बदल गई हैं।

परिभाषित करें जहां एनजी बिल्ड ऐप फाइलें उत्पन्न करता है

Cli सेटअप अब आपके कार्यक्षेत्र रूट डायरेक्टरी में angular.json (प्रतिस्थापित .angular-cli.json) में किया जाता है। डिफ़ॉल्ट कोणीय.json में आउटपुट पथ इस तरह दिखना चाहिए (अप्रासंगिक लाइनें हटा दी गई हैं):

{
  "projects": {
    "my-app-name": {
    "architect": {
      "options": {
         "outputPath": "dist/my-app-name",

जाहिर है, यह आपके ऐप को WORKSPACE / dist / my-app-name में जनरेट करेगा। यदि आप किसी अन्य निर्देशिका को पसंद करते हैं, तो OutputPath को संशोधित करें।

आप कमांड लाइन तर्कों (उदाहरण के लिए CI जॉब) का उपयोग करके आउटपुट पथ को ओवरराइट कर सकते हैं:

ng build -op dist/example
ng build --output-path=dist/example

सा https://github.com/angular/angular-cli/wiki/build

उपनिर्देशिका में होस्टिंग कोणीय ऐप

आउटपुट पथ सेट करना, कोणीय को "संकलित" फ़ाइलों को रखने के लिए बताएगा, लेकिन हालाँकि आप आउटपुट पथ को बदलते हैं, ऐप चलाते समय, कोणीय अभी भी मान लेगा कि ऐप वेबसर्वर के दस्तावेज़ रूट में होस्ट किया गया है।

इसे एक उप-निर्देशिका में काम करने के लिए, आपको आधार href सेट करना होगा।

कोणीय में। आगजनी:

{
  "projects": {
    "my-app-name": {
    "architect": {
      "options": {
         "baseHref": "/my-folder/",

CLI:

ng build --base-href=/my-folder/

यदि आपको नहीं पता कि ऐप को बिल्ड टाइम पर होस्ट किया जाएगा, तो आप जनरेट किए गए index.html में आधार टैग को बदल सकते हैं।

यहाँ एक उदाहरण है कि हम इसे अपने डॉकटर कंटेनर में कैसे करते हैं:

entrypoint.sh

if [ -n "${BASE_PATH}" ]
then
  files=( $(find . -name "index.html") )
  cp -n "${files[0]}" "${files[0]}.org"
  cp "${files[0]}.org" "${files[0]}"
  sed -i "s*<base href=\"/\">*<base href=\"${BASE_PATH}\">*g" "${files[0]}"
fi

46

आप CLI का भी उपयोग कर सकते हैं, जैसे:

ng build -prod --output-path=production

# or

ng serve --output-path=devroot

1
क्या कोणीय-cli.json में आउटपुट डायर को ओवरराइट करना संभव है ?
सर्गेई रुदाकोव

ऐसा लगता है कि यह सुविधा इस पुल अनुरोध के साथ जा रही है: github.com/angular/angular-cli/pull/1109
डैनियल पैट्रिक

17

केवल एक चीज जो मेरे लिए काम करती थी, वह थी AND outDirदोनों में बदलना ।angular-cli.jsonsrc/tsconfig.json

मैं कोणीय प्रोजेक्ट फ़ोल्डर के बाहर अपना डिस्टर्ब फ़ोल्डर चाहता था। अगर मैंने सेटिंग में बदलाव नहीं किया src/tsconfig.json, तो जब भी मैं प्रोजेक्ट बनाऊंगा तो Angular CLI चेतावनी फेंक देगा।

यहाँ सबसे महत्वपूर्ण लाइनें हैं ...

// angular-cli.json
{
  ...
  "apps": [
    {
      "outDir": "../dist",
      ...
    }
  ],
  ...
}

तथा ...

// tsconfig.json
{
  "compilerOptions": {
    "outDir": "../../dist/out-tsc",
    ...
  }
}

2
बहुत बढ़िया! के लिए अद्यतन cli 7x, ऊपर में किया जाता है angular.jsonऔर क्षेत्र है outputPath( tsconfig ऊपर समायोजन समान रहता है)। HTH
EdSF

17

खबरदार: सही उत्तर नीचे है। यह अब काम नहीं करता है

.ember-cliअपने प्रोजेक्ट में एक फ़ाइल बनाएं , और उसमें ये सामग्री शामिल करें:

{
   "output-path": "./location/to/your/dist/"
}

9

कोणीय सीएलआई अब ऐसा करने के लिए पर्यावरण फ़ाइलों का उपयोग करता है।

सबसे पहले, एक environmentsसेक्शन को इसमें जोड़ेंangular-cli.json

कुछ इस तरह :

{
  "apps": [{
      "environments": {
        "prod": "environments/environment.prod.ts"
      }
    }]
}

और फिर पर्यावरण फ़ाइल के अंदर ( environments/environment.prod.tsइस मामले में), कुछ इस तरह जोड़ें:

export const environment = {
  production: true,
  "output-path": "./whatever/dist/"
};

अब जब आप चलाते हैं:

ng build --prod

यह ./whatever/dist/फ़ोल्डर में आउटपुट करेगा ।


1
सबसे अच्छा जवाब लगता है, लेकिन एंगुलर सीएलआई अभी भी डिस्टर्ब फ़ोल्डर में मेरी फाइलें प्रकाशित करता है। संस्करण:angular-cli: 1.0.0-beta.21
NinjaFart

कोणीय सीएलआई विकी से : आउटडिर (स्ट्रिंग): बिल्ड परिणाम के लिए आउटपुट निर्देशिका। डिफ़ॉल्ट है /।
hbthanki

@hbhanki क्ली स्विच, पर्यावरण फ़ाइल नहीं, जायदाद की संपत्ति
स्वैच्छिक

9

मैं उपयोग करने के लिए github पृष्ठों के लिए

ng build --prod --base-href "https://<username>.github.io/<RepoName>/" --output-path=docs

यह वह है जो डॉक्स फ़ोल्डर में आउटपुट को कॉपी करता है: --output-path=docs


2

एक अन्य विकल्प यह होगा कि वेबरूट पथ को कोणीय क्लि डिस्ट फ़ोल्डर में सेट किया जाए। WebHostBuilder को कॉन्फ़िगर करते समय अपने Program.cs में बस कहें

.UseWebRoot(Directory.GetCurrentDirectory() + "\\Frontend\\dist")

या जो भी आपके डिस्टर्ब का रास्ता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.