parent
a781fda125
commit
e744104a3f
@ -0,0 +1,56 @@ |
||||
{ |
||||
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", |
||||
"project": { |
||||
"name": "cli-with-ng1" |
||||
}, |
||||
"apps": [ |
||||
{ |
||||
"root": "src", |
||||
"outDir": "dist", |
||||
"index": "index.html", |
||||
"main": "main.ts", |
||||
"polyfills": "polyfills.ts", |
||||
"test": "test.ts", |
||||
"tsconfig": "tsconfig.app.json", |
||||
"testTsconfig": "tsconfig.spec.json", |
||||
"prefix": "app", |
||||
"styles": [ |
||||
"styles.css" |
||||
], |
||||
"scripts": [], |
||||
"environmentSource": "environments/environment.ts", |
||||
"environments": { |
||||
"dev": "environments/environment.ts", |
||||
"prod": "environments/environment.prod.ts" |
||||
} |
||||
} |
||||
], |
||||
"e2e": { |
||||
"protractor": { |
||||
"config": "./protractor.conf.js" |
||||
} |
||||
}, |
||||
"lint": [ |
||||
{ |
||||
"project": "src/tsconfig.app.json", |
||||
"exclude": "**/node_modules/**" |
||||
}, |
||||
{ |
||||
"project": "src/tsconfig.spec.json", |
||||
"exclude": "**/node_modules/**" |
||||
}, |
||||
{ |
||||
"project": "e2e/tsconfig.e2e.json", |
||||
"exclude": "**/node_modules/**" |
||||
} |
||||
], |
||||
"test": { |
||||
"karma": { |
||||
"config": "./karma.conf.js" |
||||
} |
||||
}, |
||||
"defaults": { |
||||
"styleExt": "css", |
||||
"component": {} |
||||
} |
||||
} |
@ -0,0 +1,27 @@ |
||||
# CliWithNg1 |
||||
|
||||
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4. |
||||
|
||||
## Development server |
||||
|
||||
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. |
||||
|
||||
## Code scaffolding |
||||
|
||||
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. |
||||
|
||||
## Build |
||||
|
||||
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. |
||||
|
||||
## Running unit tests |
||||
|
||||
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). |
||||
|
||||
## Running end-to-end tests |
||||
|
||||
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). |
||||
|
||||
## Further help |
||||
|
||||
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). |
@ -0,0 +1,14 @@ |
||||
import { AppPage } from './app.po'; |
||||
|
||||
describe('cli-with-ng1 App', () => { |
||||
let page: AppPage; |
||||
|
||||
beforeEach(() => { |
||||
page = new AppPage(); |
||||
}); |
||||
|
||||
it('should display welcome message', () => { |
||||
page.navigateTo(); |
||||
expect(page.getParagraphText()).toEqual('Welcome to app!'); |
||||
}); |
||||
}); |
@ -0,0 +1,11 @@ |
||||
import { browser, by, element } from 'protractor'; |
||||
|
||||
export class AppPage { |
||||
navigateTo() { |
||||
return browser.get('/'); |
||||
} |
||||
|
||||
getParagraphText() { |
||||
return element(by.css('app-root h1')).getText(); |
||||
} |
||||
} |
@ -0,0 +1,14 @@ |
||||
{ |
||||
"extends": "../tsconfig.json", |
||||
"compilerOptions": { |
||||
"outDir": "../out-tsc/e2e", |
||||
"baseUrl": "./", |
||||
"module": "commonjs", |
||||
"target": "es5", |
||||
"types": [ |
||||
"jasmine", |
||||
"jasminewd2", |
||||
"node" |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,33 @@ |
||||
// Karma configuration file, see link for more information
|
||||
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
||||
|
||||
module.exports = function (config) { |
||||
config.set({ |
||||
basePath: '', |
||||
frameworks: ['jasmine', '@angular/cli'], |
||||
plugins: [ |
||||
require('karma-jasmine'), |
||||
require('karma-chrome-launcher'), |
||||
require('karma-jasmine-html-reporter'), |
||||
require('karma-coverage-istanbul-reporter'), |
||||
require('@angular/cli/plugins/karma') |
||||
], |
||||
client:{ |
||||
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
||||
}, |
||||
coverageIstanbulReporter: { |
||||
reports: [ 'html', 'lcovonly' ], |
||||
fixWebpackSourcePaths: true |
||||
}, |
||||
angularCli: { |
||||
environment: 'dev' |
||||
}, |
||||
reporters: ['progress', 'kjhtml'], |
||||
port: 9876, |
||||
colors: true, |
||||
logLevel: config.LOG_INFO, |
||||
autoWatch: true, |
||||
browsers: ['Chrome'], |
||||
singleRun: false |
||||
}); |
||||
}; |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,51 @@ |
||||
{ |
||||
"name": "cli-with-ng1", |
||||
"version": "0.0.0", |
||||
"license": "MIT", |
||||
"scripts": { |
||||
"ng": "ng", |
||||
"start": "ng serve", |
||||
"build": "ng build --prod", |
||||
"test": "ng test", |
||||
"lint": "ng lint", |
||||
"e2e": "ng e2e" |
||||
}, |
||||
"private": true, |
||||
"dependencies": { |
||||
"@angular/animations": "^5.2.0", |
||||
"@angular/common": "^5.2.0", |
||||
"@angular/compiler": "^5.2.0", |
||||
"@angular/core": "^5.2.0", |
||||
"@angular/forms": "^5.2.0", |
||||
"@angular/http": "^5.2.0", |
||||
"@angular/platform-browser": "^5.2.0", |
||||
"@angular/platform-browser-dynamic": "^5.2.0", |
||||
"@angular/router": "^5.2.0", |
||||
"@angular/upgrade": "5.2.10", |
||||
"angular": "1.5.9", |
||||
"core-js": "^2.4.1", |
||||
"jquery": "3.3.1", |
||||
"rxjs": "^5.5.6", |
||||
"zone.js": "^0.8.19" |
||||
}, |
||||
"devDependencies": { |
||||
"@angular/cli": "~1.7.4", |
||||
"@angular/compiler-cli": "^5.2.0", |
||||
"@angular/language-service": "^5.2.0", |
||||
"@types/jasmine": "~2.8.3", |
||||
"@types/jasminewd2": "~2.0.2", |
||||
"@types/node": "~6.0.60", |
||||
"codelyzer": "^4.0.1", |
||||
"jasmine-core": "~2.8.0", |
||||
"jasmine-spec-reporter": "~4.2.1", |
||||
"karma": "~2.0.0", |
||||
"karma-chrome-launcher": "~2.2.0", |
||||
"karma-coverage-istanbul-reporter": "^1.2.1", |
||||
"karma-jasmine": "~1.1.0", |
||||
"karma-jasmine-html-reporter": "^0.2.2", |
||||
"protractor": "~5.1.2", |
||||
"ts-node": "~4.1.0", |
||||
"tslint": "~5.9.1", |
||||
"typescript": "~2.5.3" |
||||
} |
||||
} |
@ -0,0 +1,28 @@ |
||||
// Protractor configuration file, see link for more information
|
||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
||||
|
||||
const { SpecReporter } = require('jasmine-spec-reporter'); |
||||
|
||||
exports.config = { |
||||
allScriptsTimeout: 11000, |
||||
specs: [ |
||||
'./e2e/**/*.e2e-spec.ts' |
||||
], |
||||
capabilities: { |
||||
'browserName': 'chrome' |
||||
}, |
||||
directConnect: true, |
||||
baseUrl: 'http://localhost:4200/', |
||||
framework: 'jasmine', |
||||
jasmineNodeOpts: { |
||||
showColors: true, |
||||
defaultTimeoutInterval: 30000, |
||||
print: function() {} |
||||
}, |
||||
onPrepare() { |
||||
require('ts-node').register({ |
||||
project: 'e2e/tsconfig.e2e.json' |
||||
}); |
||||
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); |
||||
} |
||||
}; |
@ -0,0 +1,7 @@ |
||||
<div> |
||||
<h1> |
||||
Welcome to {{ title }}! |
||||
</h1> |
||||
</div> |
||||
|
||||
|
@ -0,0 +1,10 @@ |
||||
import { Component } from '@angular/core'; |
||||
|
||||
@Component({ |
||||
selector: 'app-component', |
||||
templateUrl: './app.component.html', |
||||
styleUrls: ['./app.component.css'] |
||||
}) |
||||
export class AppComponent { |
||||
title = 'app'; |
||||
} |
@ -0,0 +1,22 @@ |
||||
import {BrowserModule} from '@angular/platform-browser'; |
||||
import {NgModule} from '@angular/core'; |
||||
import {AppComponent} from './app.component'; |
||||
import {UpgradeModule} from '@angular/upgrade/static'; |
||||
|
||||
@NgModule({ |
||||
declarations: [ |
||||
AppComponent |
||||
], |
||||
imports: [ |
||||
BrowserModule, |
||||
UpgradeModule, |
||||
], |
||||
entryComponents: [AppComponent], |
||||
providers: [], |
||||
}) |
||||
export class AppModule { |
||||
|
||||
ngDoBootstrap() { |
||||
} |
||||
|
||||
} |
@ -0,0 +1,33 @@ |
||||
import 'angular'; |
||||
import {AppComponent} from './app.component'; |
||||
import {downgradeComponent} from '@angular/upgrade/static'; |
||||
|
||||
declare const angular: any; |
||||
|
||||
|
||||
export class Ng1DirectiveController { |
||||
label = 'AngularJS'; |
||||
} |
||||
|
||||
|
||||
function ng1Directive(): any { |
||||
return { |
||||
restrict: 'E', |
||||
template: ` |
||||
ng1directive |
||||
<span>{{$ctrl.label}}</span> |
||||
<app-component></app-component> |
||||
`,
|
||||
controller: Ng1DirectiveController, |
||||
controllerAs: '$ctrl', |
||||
bindToController: true |
||||
}; |
||||
} |
||||
|
||||
const ng1Module = angular.module('ng1mod', []); |
||||
|
||||
ng1Module.directive('appComponent', |
||||
downgradeComponent({component: AppComponent}) |
||||
); |
||||
|
||||
ng1Module.directive('ng1directive', ng1Directive); |
@ -0,0 +1,3 @@ |
||||
export const environment = { |
||||
production: true |
||||
}; |
@ -0,0 +1,8 @@ |
||||
// The file contents for the current environment will overwrite these during build.
|
||||
// The build system defaults to the dev environment which uses `environment.ts`, but if you do
|
||||
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
|
||||
// The list of which env maps to which file can be found in `.angular-cli.json`.
|
||||
|
||||
export const environment = { |
||||
production: false |
||||
}; |
After Width: | Height: | Size: 5.3 KiB |
@ -0,0 +1,16 @@ |
||||
<!doctype html> |
||||
<html lang="en"> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<title>CliWithNg1</title> |
||||
<base href="/"> |
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||
<link rel="icon" type="image/x-icon" href="favicon.ico"> |
||||
</head> |
||||
<body> |
||||
|
||||
<ng1directive></ng1directive> |
||||
|
||||
</body> |
||||
</html> |
@ -0,0 +1,31 @@ |
||||
import {enableProdMode, NgModuleRef} from '@angular/core'; |
||||
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; |
||||
import {AppModule} from './app/app.module'; |
||||
import {environment} from './environments/environment'; |
||||
import {UpgradeModule} from '@angular/upgrade/static'; |
||||
import * as jQuery from 'jquery'; |
||||
import {setAngularJSGlobal} from '@angular/upgrade/static'; |
||||
|
||||
|
||||
import './app/ng1'; |
||||
|
||||
if (environment.production) { |
||||
enableProdMode(); |
||||
} |
||||
|
||||
declare const angular: any; |
||||
|
||||
export function bootstrapWithUiRouter(platformRef: NgModuleRef<any>): void { |
||||
setAngularJSGlobal(angular); |
||||
const injector = platformRef.injector; |
||||
const upgradeModule = injector.get(UpgradeModule); |
||||
upgradeModule.bootstrap(document.body, ['ng1mod'], {strictDi: true}); |
||||
} |
||||
|
||||
jQuery(function () { |
||||
// Due to the behaviour of the Edge browser we need to wait for 'DOM ready'
|
||||
platformBrowserDynamic() |
||||
.bootstrapModule(AppModule) |
||||
.then(platformRef => bootstrapWithUiRouter(platformRef)); |
||||
}); |
||||
|
@ -0,0 +1,79 @@ |
||||
/** |
||||
* This file includes polyfills needed by Angular and is loaded before the app. |
||||
* You can add your own extra polyfills to this file. |
||||
* |
||||
* This file is divided into 2 sections: |
||||
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. |
||||
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main |
||||
* file. |
||||
* |
||||
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that |
||||
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), |
||||
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. |
||||
* |
||||
* Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
|
||||
*/ |
||||
|
||||
/*************************************************************************************************** |
||||
* BROWSER POLYFILLS |
||||
*/ |
||||
|
||||
/** IE9, IE10 and IE11 requires all of the following polyfills. **/ |
||||
// import 'core-js/es6/symbol';
|
||||
// import 'core-js/es6/object';
|
||||
// import 'core-js/es6/function';
|
||||
// import 'core-js/es6/parse-int';
|
||||
// import 'core-js/es6/parse-float';
|
||||
// import 'core-js/es6/number';
|
||||
// import 'core-js/es6/math';
|
||||
// import 'core-js/es6/string';
|
||||
// import 'core-js/es6/date';
|
||||
// import 'core-js/es6/array';
|
||||
// import 'core-js/es6/regexp';
|
||||
// import 'core-js/es6/map';
|
||||
// import 'core-js/es6/weak-map';
|
||||
// import 'core-js/es6/set';
|
||||
|
||||
/** IE10 and IE11 requires the following for NgClass support on SVG elements */ |
||||
// import 'classlist.js'; // Run `npm install --save classlist.js`.
|
||||
|
||||
/** IE10 and IE11 requires the following for the Reflect API. */ |
||||
// import 'core-js/es6/reflect';
|
||||
|
||||
|
||||
/** Evergreen browsers require these. **/ |
||||
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
|
||||
import 'core-js/es7/reflect'; |
||||
|
||||
|
||||
/** |
||||
* Required to support Web Animations `@angular/platform-browser/animations`. |
||||
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
|
||||
**/ |
||||
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
|
||||
|
||||
/** |
||||
* By default, zone.js will patch all possible macroTask and DomEvents |
||||
* user can disable parts of macroTask/DomEvents patch by setting following flags |
||||
*/ |
||||
|
||||
// (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
|
||||
// (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
|
||||
// (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
|
||||
|
||||
/* |
||||
* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js |
||||
* with the following flag, it will bypass `zone.js` patch for IE/Edge |
||||
*/ |
||||
// (window as any).__Zone_enable_cross_context_check = true;
|
||||
|
||||
/*************************************************************************************************** |
||||
* Zone JS is required by default for Angular itself. |
||||
*/ |
||||
import 'zone.js/dist/zone'; // Included with Angular CLI.
|
||||
|
||||
|
||||
|
||||
/*************************************************************************************************** |
||||
* APPLICATION IMPORTS |
||||
*/ |
@ -0,0 +1 @@ |
||||
/* You can add global styles to this file, and also import other style files */ |
@ -0,0 +1,20 @@ |
||||
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
||||
|
||||
import 'zone.js/dist/zone-testing'; |
||||
import { getTestBed } from '@angular/core/testing'; |
||||
import { |
||||
BrowserDynamicTestingModule, |
||||
platformBrowserDynamicTesting |
||||
} from '@angular/platform-browser-dynamic/testing'; |
||||
|
||||
declare const require: any; |
||||
|
||||
// First, initialize the Angular testing environment.
|
||||
getTestBed().initTestEnvironment( |
||||
BrowserDynamicTestingModule, |
||||
platformBrowserDynamicTesting() |
||||
); |
||||
// Then we find all the tests.
|
||||
const context = require.context('./', true, /\.spec\.ts$/); |
||||
// And load the modules.
|
||||
context.keys().map(context); |
@ -0,0 +1,13 @@ |
||||
{ |
||||
"extends": "../tsconfig.json", |
||||
"compilerOptions": { |
||||
"outDir": "../out-tsc/app", |
||||
"baseUrl": "./", |
||||
"module": "es2015", |
||||
"types": [] |
||||
}, |
||||
"exclude": [ |
||||
"test.ts", |
||||
"**/*.spec.ts" |
||||
] |
||||
} |
@ -0,0 +1,19 @@ |
||||
{ |
||||
"extends": "../tsconfig.json", |
||||
"compilerOptions": { |
||||
"outDir": "../out-tsc/spec", |
||||
"baseUrl": "./", |
||||
"module": "commonjs", |
||||
"types": [ |
||||
"jasmine", |
||||
"node" |
||||
] |
||||
}, |
||||
"files": [ |
||||
"test.ts" |
||||
], |
||||
"include": [ |
||||
"**/*.spec.ts", |
||||
"**/*.d.ts" |
||||
] |
||||
} |
@ -0,0 +1,5 @@ |
||||
/* SystemJS module definition */ |
||||
declare var module: NodeModule; |
||||
interface NodeModule { |
||||
id: string; |
||||
} |
@ -0,0 +1,19 @@ |
||||
{ |
||||
"compileOnSave": false, |
||||
"compilerOptions": { |
||||
"outDir": "./dist/out-tsc", |
||||
"sourceMap": true, |
||||
"declaration": false, |
||||
"moduleResolution": "node", |
||||
"emitDecoratorMetadata": true, |
||||
"experimentalDecorators": true, |
||||
"target": "es5", |
||||
"typeRoots": [ |
||||
"node_modules/@types" |
||||
], |
||||
"lib": [ |
||||
"es2017", |
||||
"dom" |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,143 @@ |
||||
{ |
||||
"rulesDirectory": [ |
||||
"node_modules/codelyzer" |
||||
], |
||||
"rules": { |
||||
"arrow-return-shorthand": true, |
||||
"callable-types": true, |
||||
"class-name": true, |
||||
"comment-format": [ |
||||
true, |
||||
"check-space" |
||||
], |
||||
"curly": true, |
||||
"deprecation": { |
||||
"severity": "warn" |
||||
}, |
||||
"eofline": true, |
||||
"forin": true, |
||||
"import-blacklist": [ |
||||
true, |
||||
"rxjs", |
||||
"rxjs/Rx" |
||||
], |
||||
"import-spacing": true, |
||||
"indent": [ |
||||
true, |
||||
"spaces" |
||||
], |
||||
"interface-over-type-literal": true, |
||||
"label-position": true, |
||||
"max-line-length": [ |
||||
true, |
||||
140 |
||||
], |
||||
"member-access": false, |
||||
"member-ordering": [ |
||||
true, |
||||
{ |
||||
"order": [ |
||||
"static-field", |
||||
"instance-field", |
||||
"static-method", |
||||
"instance-method" |
||||
] |
||||
} |
||||
], |
||||
"no-arg": true, |
||||
"no-bitwise": true, |
||||
"no-console": [ |
||||
true, |
||||
"debug", |
||||
"info", |
||||
"time", |
||||
"timeEnd", |
||||
"trace" |
||||
], |
||||
"no-construct": true, |
||||
"no-debugger": true, |
||||
"no-duplicate-super": true, |
||||
"no-empty": false, |
||||
"no-empty-interface": true, |
||||
"no-eval": true, |
||||
"no-inferrable-types": [ |
||||
true, |
||||
"ignore-params" |
||||
], |
||||
"no-misused-new": true, |
||||
"no-non-null-assertion": true, |
||||
"no-shadowed-variable": true, |
||||
"no-string-literal": false, |
||||
"no-string-throw": true, |
||||
"no-switch-case-fall-through": true, |
||||
"no-trailing-whitespace": true, |
||||
"no-unnecessary-initializer": true, |
||||
"no-unused-expression": true, |
||||
"no-use-before-declare": true, |
||||
"no-var-keyword": true, |
||||
"object-literal-sort-keys": false, |
||||
"one-line": [ |
||||
true, |
||||
"check-open-brace", |
||||
"check-catch", |
||||
"check-else", |
||||
"check-whitespace" |
||||
], |
||||
"prefer-const": true, |
||||
"quotemark": [ |
||||
true, |
||||
"single" |
||||
], |
||||
"radix": true, |
||||
"semicolon": [ |
||||
true, |
||||
"always" |
||||
], |
||||
"triple-equals": [ |
||||
true, |
||||
"allow-null-check" |
||||
], |
||||
"typedef-whitespace": [ |
||||
true, |
||||
{ |
||||
"call-signature": "nospace", |
||||
"index-signature": "nospace", |
||||
"parameter": "nospace", |
||||
"property-declaration": "nospace", |
||||
"variable-declaration": "nospace" |
||||
} |
||||
], |
||||
"unified-signatures": true, |
||||
"variable-name": false, |
||||
"whitespace": [ |
||||
true, |
||||
"check-branch", |
||||
"check-decl", |
||||
"check-operator", |
||||
"check-separator", |
||||
"check-type" |
||||
], |
||||
"directive-selector": [ |
||||
true, |
||||
"attribute", |
||||
"app", |
||||
"camelCase" |
||||
], |
||||
"component-selector": [ |
||||
true, |
||||
"element", |
||||
"app", |
||||
"kebab-case" |
||||
], |
||||
"no-output-on-prefix": true, |
||||
"use-input-property-decorator": true, |
||||
"use-output-property-decorator": true, |
||||
"use-host-property-decorator": true, |
||||
"no-input-rename": true, |
||||
"no-output-rename": true, |
||||
"use-life-cycle-interface": true, |
||||
"use-pipe-transform-interface": true, |
||||
"component-class-suffix": true, |
||||
"directive-class-suffix": true |
||||
} |
||||
} |
Loading…
Reference in new issue