Ionic-app-scripts: Ionic's rc.1 tries to compile typings and tests folder

Created on 15 Oct 2016  ·  9Comments  ·  Source: ionic-team/ionic-app-scripts

Short description of the problem:

This is my current log if I start ionic serve.
The problem is that ionic tries to compile the typings folder. Or it tries to include this folder to the build process so that much typing are duplicated.
The same for the tests. For the tests I'm using jasmine so ionic shouldn't care about missing it or describe functions. But ionic care about... :-(

What behavior are you expecting?

That the tests and typings folders are ignored during the compile process of ionic serve. 👍

Steps to reproduce:

  1. Create tests folder or install typings with tsd https://github.com/DefinitelyTyped/tsd
  2. Try to compile your project

Which @ionic/app-scripts version are you using?
+-- @ionic/[email protected]

Log:

C:\xampp\htdocs>ionic serve -a --nobrowser

Running 'serve:before' npm script before serve

> [email protected] watch C:\xampp\htdocs
> ionic-app-scripts watch

[13:24:53]  ionic-app-scripts 0.0.34
[13:24:53]  watch started ...
[13:24:53]  build dev started ...
[13:24:53]  clean started ...
[13:24:53]  clean finished in 7 ms
[13:24:53]  copy started ...
[13:24:53]  transpile started ...
[13:24:54]  lint started ...
[13:24:57]  lint finished in 3.75 s
[13:24:59]  typescript: ...xampp/htdocs/node_modules/typescript/lib/lib.es2015.iterable.d.ts, 
            line: 141 
            Duplicate identifier 'Promise'.

     L140:      race<T>(values: Iterable<T | PromiseLike<T>>): Promise<T>;
     L141:  [13:24:59]  typescript: .../xampp/htdocs/node_modules/typescript/lib/lib.es2015.promise.d.ts, }


            line: 20 
            Duplicate identifier 'Promise'.

      L19:  * Attaches callbacks [13:24:59]  typescript: .../xampp/htdocs/node_modules/typescript/lib/lib.es2015.promise.d.ts, for
 the resolution and/or rejection of the Promise.
            line: 187       L20:
* @param[13:24:59]  typescript: ...docs/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts, 
             line: 164 o
nfulfilled The callback to execute when the Promise is resolved.
      L21:  * @returns A Promise for the completion of which ever callback is executed.

[13:24:59]  typescript: .../htdocs/src/pages/2order/+cart/shared/cart-indicator.component.ts,             Duplicate identifier 'Promise'. 

            Duplicate identifier 'Promise'. 


     L163:              line: 51 * Replaces text 
in a string, using this regular expression.
     L164:  * @para[13:24:59]  typescript: C:/xampp/htdocs/src/pages/2order/+order/order.component.ts, line: m
            6  
string A String object or string literal whose contents matching against
     L165:  *               [13:24:59]  typescript: C:/xampp/htdocs/test/intro_spec.ts, line: 3 this
 regular expression will be replaced

            Argument of type '{ type: string; }' is not assignable to parameter of type 'Scheduler |
            { type: string; totalCount: number; }'. Type '{ type: string; }' is not assignable to type
            '{ type: string; totalCount: number; }'. Property 'totalCount' is missing in type '{ type:
            string; }'.

      L50:  [13:24:59]  typescript: C:/xampp/htdocs/test/intro_spec.ts, line: 7 .distinctUntilChanged()

      L51:  .startWith({type: 'in[13:24:59]  typescript: C:/xampp/htdocs/test/intro_spec.ts, line: 7 i
t'})
      L52:  [13:24:59]  typescript: C:/xampp/htdocs/test/intro_spec.ts, line: 9 .subscribe(data => {

            Module '"C:/xampp/htdocs/src/pages/2order/shared/index"' has no exported member 
            'Product'. 


       L5:  import {CartComponent, CartService} from '../+cart/index';
       L6:  import {P[13:24:59]  typescript: C:/xampp/htdocs/test/intro_spec.ts, line: 10 
roduc[13:24:59]  typescript: C:/xampp/htdocs/test/intro_spec.ts, line: 14 
t} from '../shared/index';
       L7:  [13:24:59]  typescript: C:/xampp/htdocs/test/intro_spec.ts, line: 14 
import {CustomProductPage} from '../custom-product/custom-product';

            Cannot find name 'browser'.

[13:24:59]  typescript: C:/xampp/htdocs/typings/es6-promise/es6-promise.d.ts, line: 11 
       L2:  [13:24:59]  typescript: C:/xampp/htdocs/typings/es6-promise/es6-promise.d.ts, line: 42 beforeEach(() => {

       L3:    browser.get('');
[13:24:59]  typescript: C:/xampp/htdocs/typings/jasmine/jasmine.d.ts, line: 9        L4:
});

            Cannot find name 'element'.

       L6:  it('should have multiple pages', () => {
[13:24:59]  typescript: C:/xampp/htdocs/typings/jasmine/jasmine.d.ts, line: 11        L7:
  expect([13:24:59]  typescript: C:/xampp/htdocs/typings/jasmine/jasmine.d.ts, line: 13 e
lement.all(by.css('.header-intro')).count()).toBe(1);

            Cannot find name 'by'.

       L6:  it('should have multiple pages', () => {
[13:24:59]  typescript: C:/xampp/htdocs/typings/jasmine/jasmine.d.ts, line: 14        L7:  
  expect(element.all(by.css('.header-intro')).count()).toBe(1);

            Cannot find name 'by'.

       L9:  let buttonSelectorOnward = b[13:24:59]  typescript: C:/xampp/htdocs/typings/jasmine/jasmine.d.ts, line: 17 
y.buttonText('Weiter');
      L10:  expect(element.all(buttonSelectorOnward).count()).toBe(1);

            Cannot find name 'element'. 

       L9:  let buttonSelectorOnward = by.buttonText('Weiter');
      L10:  expect(element.all(buttonSelectorOnward).count()).toBe(1);

            Cannot find name 'element'. 

      L13:  // {
      L14:    let buttonOnward = element(by.buttonText('Weiter'));
      L15:    buttonOnward.click();

            Cannot find name 'by'. 

      L13:  // {
      L14:    let buttonOnward = element(by[13:24:59]  typescript: C:/xampp/htdocs/typings/jasmine/jasmine.d.ts, line: 18 .buttonText('Weiter'));

      L15:    buttonOnward.click();

            Duplicate identifier 'Promise'.

      L10:  * If you call reject your promise is rejected with the object passed to reject.
[13:24:59]  typescript: C:/xampp/htdocs/typings/mocha/mocha.d.ts, line: 33       L11:
* For consistency[13:24:59]  typescript: C:/xampp/htdocs/typings/mocha/mocha.d.ts, line: 34
and debugging (eg stack traces), obj should be an instanceof Error.
      L12:  [13:24:59]  typescript: C:/xampp/htdocs/typings/mocha/mocha.d.ts, line: 39 * Any errors thrown 
in the constructor callback will be implicitly passed to reject().

            Duplicate identifier 'Promise'.

      L42:  [13:24:59]  typescript: C:/xampp/htdocs/typings/mocha/mocha.d.ts, line: 40 
function resolve<T>(value?: T | Thenable<T>): Promise<T>;

            Duplicate identifier 'describe'.

       L8:  declare function fit(expectation: string, assertion?: (done: DoneFn) => void, timeout?:
       L9:  declare function xit(expectation: string, assertion?: () => void, timeout?: number): voi
      L10:  declare function xit(expectation: string, assertion?: (done: DoneFn) => void, timeout?:

            Duplicate identifier 'xdescribe'.

            Duplicate identifier 'it'.

      L12:  /** If you call the function pending anywhere in the spec body, no matter the expectati
      L13:  declare function pending(reason?: string): void;

            Duplicate identifier 'it'.

            Duplicate identifier 'xit'.

      L16:  declare function beforeEach(action: (done: DoneFn) => void, timeout?: number): void;
      L17:  declare function afterEach(action: () => void, timeout?: number): void;
      L18:  declare function afterEach(action: (done: DoneFn) => void, timeout?: number): void;

            Duplicate identifier 'xit'.

      L17:  declare function afterEach(action: () => void, timeout?: number): void;
      L18:  declare function aft[13:24:59]  transpile failed erEach(action: (done: DoneFn) => void, timeout?: number): void;

            Duplicate identifier 'describe'. 


      L32:  // alias for `describe`
      L33:  declare var suite: Mocha.IContextDefinition;
      L34:  declare var it: Mocha.ITestDefinition;

            Duplicate identifier 'xdescribe'.

      L33:  declare var suite: Mocha.IContextDefinition;
      L34:  declare var it: Mocha.ITestDefinition;
      L35:  declare var xit: Mocha.ITestDefinition;

            Duplicate identifier 'it'.

            Duplicate identifier 'xit'.

      L40:  interface MochaDone {
      L41:      (error?: any): any;

[13:24:59]  copy finished in 5.82 s
[13:24:59]  watch ready in 5.97 s
Running live reload server: http://localhost:35729
Watching: www/**/*, !www/lib/**/*, !www/**/*.map
√ Running dev server:  http://localhost:8100
Ionic server commands, enter:
  restart or r to restart the client app from the root
  goto or g and a url to have the app navigate to the given url
  consolelogs or c to enable/disable console log output
  serverlogs or s to enable/disable server log output
  quit or q to shutdown the server and exit
bug

All 9 comments

Same Problem here!!

tsd has been deprecated in favor of typings. Would you be able to try https://github.com/typings/typings instead?

For more info: https://github.com/DefinitelyTyped/tsd/issues/269

The best route to take is to use @types instead of the Typings tool. That is what we will support going forward as we deprecated support for typings with Typescript 2.0.

There are two things we can do:
1. Add a types entry to the tsconfig.json for jasmine
- or -
1. Use the include option in tsconfig.json to specify what files are to be used. We could exclude spec files, etc.

We'll figure this out soon.

Thanks,
Dan

@danbucholtz Couldn't we use the excludes option to ignore spec files?

@jgw96, probably.

Thanks,
Dan

@patrickbussmann can you add the line i added in my above commit to your tsconfig and give that a try? Thanks!

adding "**/*.spec.ts" sound reasonable but isn't working for me

I have similar problem, here is what i see in terminal:

...
L19358: export = matchesProperty;
Duplicate identifier 'export='.
[19:10:34] typescript: node_modules/@types/lodash/index.d.ts, line: 19358
[19:10:34] typescript: node_modules/@types/lodash/index.d.ts, line: 19364

L19363: const memoize: typeof _.memoize;
L19364: export = memoize;
Duplicate identifier 'export='.
[19:10:34] typescript: node_modules/@types/lodash/index.d.ts, line: 19370

L19369: const merge: typeof _.merge;
L19370: export = merge;
Duplicate identifier 'export='.
[19:10:34] typescript: node_modules/@types/lodash/index.d.ts, line: 19376

L19375: const mergeWith: typeof _.mergeWith;
L19376: export = mergeWith;
[19:10:34] typescript: node_modules/@types/lodash/index.d.ts, line: 19382

        Duplicate identifier 'export='. 

L19381: const method: typeof _.method;
L19382: export = method;
Duplicate identifier 'export='.
[19:10:34] typescript: node_modules/@types/lodash/index.d.ts, line: 19388
... etc

This is fixed now. Please make sure your tsconfig.json file matches the one we provide.

Thanks,
Dan

Was this page helpful?
0 / 5 - 0 ratings