diff --git a/addon/ng2/blueprints/ng2/files/package.json b/addon/ng2/blueprints/ng2/files/package.json index 169e02a48055..bddfdd9563d3 100644 --- a/addon/ng2/blueprints/ng2/files/package.json +++ b/addon/ng2/blueprints/ng2/files/package.json @@ -45,6 +45,6 @@ "protractor": "4.0.3", "ts-node": "1.2.1", "tslint": "3.13.0", - "typescript": "^2.0.0" + "typescript": "2.0.0" } } diff --git a/addon/ng2/models/webpack-build-common.ts b/addon/ng2/models/webpack-build-common.ts index cbe92ef13711..d4291f118851 100644 --- a/addon/ng2/models/webpack-build-common.ts +++ b/addon/ng2/models/webpack-build-common.ts @@ -4,12 +4,10 @@ const HtmlWebpackPlugin = require('html-webpack-plugin'); import * as webpack from 'webpack'; const atl = require('awesome-typescript-loader'); +import { BaseHrefWebpackPlugin } from '@angular-cli/base-href-webpack'; import { findLazyModules } from './find-lazy-modules'; -import { BaseHrefWebpackPlugin } from '../utilities/base-href-webpack-plugin'; - - export function getWebpackCommonConfig( projectRoot: string, environment: string, diff --git a/addon/ng2/package.json b/addon/ng2/package.json index 53d9f38255cc..8a0c28b1cd33 100644 --- a/addon/ng2/package.json +++ b/addon/ng2/package.json @@ -2,7 +2,6 @@ "name": "ng2", "version": "0.0.0", "description": "An addon to generate an ng2 project", - "author": "rodyhaddad", "license": "MIT", "keywords": [ "ember-addon" diff --git a/addon/ng2/tsconfig.json b/addon/ng2/tsconfig.json index 116aa140dbe1..f347288cb434 100644 --- a/addon/ng2/tsconfig.json +++ b/addon/ng2/tsconfig.json @@ -20,6 +20,7 @@ "baseUrl": "", "paths": { "@angular-cli/ast-tools": [ "../../packages/ast-tools/src" ], + "@angular-cli/base-href-webpack": [ "../../packages/base-href-webpack/src" ], "@angular-cli/webpack": [ "../../packages/webpack/src" ] } }, diff --git a/package.json b/package.json index 67a56cc62e00..f95f508de2ac 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "ts-loader": "^0.8.2", "tslint-loader": "^2.1.4", "typedoc": "^0.4.2", - "typescript": "^2.0.0", + "typescript": "2.0.0", "url-loader": "^0.5.7", "webpack": "2.1.0-beta.21", "webpack-dev-server": "2.1.0-beta.0", diff --git a/packages/ast-tools/package.json b/packages/ast-tools/package.json index f95f5bcd049c..90591e58782c 100644 --- a/packages/ast-tools/package.json +++ b/packages/ast-tools/package.json @@ -2,7 +2,7 @@ "name": "@angular-cli/ast-tools", "version": "1.0.0-beta.11-webpack.5", "description": "CLI tool for Angular", - "main": "./index.js", + "main": "./src/index.js", "keywords": [ "angular", "cli", @@ -22,6 +22,6 @@ "dependencies": { "rxjs": "^5.0.0-beta.11", "denodeify": "^1.2.1", - "typescript": "^2.0.0" + "typescript": "2.0.0" } } diff --git a/packages/base-href-webpack/package.json b/packages/base-href-webpack/package.json new file mode 100644 index 000000000000..43f31ab33f5e --- /dev/null +++ b/packages/base-href-webpack/package.json @@ -0,0 +1,25 @@ +{ + "name": "@angular-cli/base-href-webpack", + "version": "1.0.0", + "description": "Base HREF Webpack plugin", + "main": "./src/index.js", + "keywords": [ + "angular", + "cli", + "webpack", + "plugin", + "tool" + ], + "repository": { + "type": "git", + "url": "https://github.com/angular/angular-cli.git" + }, + "author": "angular", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular-cli/issues" + }, + "homepage": "https://github.com/angular/angular-cli", + "dependencies": { + } +} diff --git a/packages/base-href-webpack/src/base-href-webpack-plugin.spec.ts b/packages/base-href-webpack/src/base-href-webpack-plugin.spec.ts new file mode 100644 index 000000000000..b86b707d2313 --- /dev/null +++ b/packages/base-href-webpack/src/base-href-webpack-plugin.spec.ts @@ -0,0 +1,66 @@ +import {oneLineTrim} from 'common-tags'; +import {BaseHrefWebpackPlugin} from './base-href-webpack-plugin'; + + +function mockCompiler(indexHtml, callback) { + return { + plugin: function (event, compilerCallback) { + const compilation = { + plugin: function (hook, compilationCallback) { + const htmlPluginData = { + html: indexHtml + }; + compilationCallback(htmlPluginData, callback); + } + }; + compilerCallback(compilation); + } + }; +} + +describe('base href webpack plugin', () => { + const html = oneLineTrim` + +
+ + + `; + + it('should do nothing when baseHref is null', () => { + const plugin = new BaseHrefWebpackPlugin({ baseHref: null }); + + const compiler = mockCompiler(html, (x, htmlPluginData) => { + expect(htmlPluginData.html).toEqual(''); + }); + plugin.apply(compiler); + }); + + it('should insert base tag when not exist', function () { + const plugin = new BaseHrefWebpackPlugin({ baseHref: '/' }); + const compiler = mockCompiler(html, (x, htmlPluginData) => { + expect(htmlPluginData.html).toEqual(oneLineTrim` + +