6

So I need to configure the public folder of my application, in other words, I want the assets to point to my own path on the generated index file like src="mypublicpath/assets/app.js"

I'm really sure this is a value that needs to be set on the angular-cli.json configuration.

this is my file

{
  "project": {
    "version": "1.0.0-beta.28.3",
    "name": "ng-app-manager"
  },
  "apps": [
    {
      "root": "src",
      "outDir": "../bundles/ng-app-manager",
      "assets": [
        "assets",
        "favicon.ico"
      ],
      "index": "index.html",
      "main": "main.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.json",
      "prefix": "app",
      "styles": [
        "styles.css"
      ],
      "scripts": [],
      "environments": {
        "source": "environments/environment.ts",
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
  ],
  "e2e": {
    "protractor": {
      "config": "./protractor.conf.js"
    }
  },
  "lint": [
    {
      "files": "src/**/*.ts",
      "project": "src/tsconfig.json"
    },
    {
      "files": "e2e/**/*.ts",
      "project": "e2e/tsconfig.json"
    }
  ],
  "test": {
    "karma": {
      "config": "./karma.conf.js"
    }
  },
  "defaults": {
    "styleExt": "css",
    "prefixInterfaces": false,
    "inline": {
      "style": false,
      "template": false
    },
    "spec": {
      "class": false,
      "component": true,
      "directive": true,
      "module": false,
      "pipe": true,
      "service": true
    }
  }
}

I just need the equivalent to webpacks "publicPath"

1

1 Answer 1

9

You're probably looking for the deployUrl option in Angular CLI. Your angular-cli.json would look like this.

{
  "project": {
    "version": "1.0.0-beta.28.3",
    "name": "ng-app-manager"
  },
  "apps": [
    {
      "root": "src",
      "outDir": "..\/bundles\/ng-app-manager",
      "deployUrl": "http://my.cdn.host.com/assets",
      "assets": [
        "assets",
        "favicon.ico"
      ],
      "index": "index.html",
      "main": "main.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.json",
      "prefix": "app",
      "styles": [
        "styles.css"
      ],
      "scripts": [

      ],
      "environments": {
        "source": "environments\/environment.ts",
        "dev": "environments\/environment.ts",
        "prod": "environments\/environment.prod.ts"
      }
    }
  ],
  "e2e": {
    "protractor": {
      "config": ".\/protractor.conf.js"
    }
  },
  "lint": [
    {
      "files": "src\/**\/*.ts",
      "project": "src\/tsconfig.json"
    },
    {
      "files": "e2e\/**\/*.ts",
      "project": "e2e\/tsconfig.json"
    }
  ],
  "test": {
    "karma": {
      "config": ".\/karma.conf.js"
    }
  },
  "defaults": {
    "styleExt": "css",
    "prefixInterfaces": false,
    "inline": {
      "style": false,
      "template": false
    },
    "spec": {
      "class": false,
      "component": true,
      "directive": true,
      "module": false,
      "pipe": true,
      "service": true
    }
  }
}

Running ng build will then automatically prefix resource references in the dist folder, with http://my.cdn.host.com/assets. For example, the reference for app.js will into http://my.cdn.host.com/assets/app.js.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.