nrwl / nx

Smart Monorepos · Fast CI
https://nx.dev
MIT License
23.22k stars 2.31k forks source link

Bug(testing): unsupported .js extension #82

Closed sandangel closed 6 years ago

sandangel commented 6 years ago

I had checked the new angular 5 with nx workspace. When I run ng test, the following error has occurred:

ERROR in error TS6054: File '.../Angular/mdb-admin/test.js' has unsupported extension. The only supported extensions are '.ts', '.tsx', '.d.ts'.

Any fix on this?

Silthus commented 6 years ago

Did you find a fix? I have the same problem.

sandangel commented 6 years ago

I guess we have to write this test file in typescript. ^^

sean-perkins commented 6 years ago

@Silthus

In the root of your project, rename test.js to test.ts.

Here's the updated TypeScript version for that file and NX:

// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import { getTestBed } from '@angular/core/testing';
import {
    BrowserDynamicTestingModule,
    platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
declare const __karma__: any;
declare const require: any;

// Prevent Karma from running prematurely.
__karma__.loaded = function () { };

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
    BrowserDynamicTestingModule,
    platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./apps', true, /\.spec\.ts$ /);
// And load the modules.
context.keys().map(context);

const contextLibs = require.context('./libs', true, /\.spec\.ts$/);
// And load the modules.
contextLibs.keys().map(contextLibs);
// Finally, start Karma to run the tests.
__karma__.start();

Update tsconfig.spec.json so that the files section references test.ts instead of test.js.

Lastly, update your .angular-cli.json so that all references of:

"test": "../../../test.js",

are updated to:

"test": "../../../test.ts",
Silthus commented 6 years ago

@sean-perkins thanks for the test.ts file. Do you also have the problem that tests inside the apps folder are not run? When I run ng test only tests inside the libs folder are run. The same goes for ng test --app=myapp.

vsavkin commented 6 years ago

The issue has been fixed in 0.1.1. Could you provide a repro using 0.1.1?

sandangel commented 6 years ago

I will give it a shot with 0.2

sandangel commented 6 years ago

no, this is not fixed in 0.2

screen shot 2017-11-18 at 12 19 04

as well as in 0.1.1:

screen shot 2017-11-18 at 12 20 33
vsavkin commented 6 years ago

@sandangel could you provide a repro of a project created with 0.2.0?

sandangel commented 6 years ago

@vsavkin sorry but did you see that I'm only use command ng new pro -c=@ngrl/schematics --skip-install and the test.js file appear in generated file list? Do I have to generate a new project and upload to github? This is just about file generating and I don't know how to provide a better repro steps than screenshot.

sandangel commented 6 years ago
screen shot 2017-11-27 at 7 41 43

This is a screenshot with nrwl 0.2.1

dereklin commented 6 years ago

@sean-perkins Your test.ts has an extra white space in:

const context = require.context('./apps', true, /\.spec\.ts$ /);

It should be:

const context = require.context('./apps', true, /\.spec\.ts$/);

Furthermore, in my project, I had to put in the app path in order for the tests go to through:

const context = require.context('./apps/app1', true, /\.spec\.ts$/);

Without appending /app1, the modules were not loaded properly in the tests. Is there another way to address this?

vsavkin commented 6 years ago

Some context: When switching from Angular 4 to Angular 5, we hit the same issue you are seeing now. We had to tweak the tsconfig.spec.json file to work properly. This is how it should look right now:

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/spec",
    "module": "commonjs",
    "target": "es5",
    "types": [
      "jasmine",
      "node"
    ],
    "baseUrl": ".",
    "paths": {
      "@myprojectname/*": [
        "libs/*"
      ]
    }
  },
  "include": [
    "**/*.ts"
  ],
  "exclude": [
    "node_modules",
    "tmp"
  ]
}

SO I think the issue is with the fact that you have another version of schematics installed globally. To see if this is the case you can use this script to create a project (https://nrwl.io/nx/guide-getting-started). If the created project works fine, then you have an old version of schematics installed globally. If it doesn't, then it's something else. In this case, could you upload the project to github, so I can take a look at it?

Finally, we added support for migrations, so we can automatically modify your config files, so you won't have such issues in the future.

sandangel commented 6 years ago

@vsavkin Here is my global @nrwl/schematics version image

Here is the generated new project with global @nrwl/schematics https://github.com/sandangel/nx-bug-test

Here is the generated project using install script https://github.com/sandangel/nx-bug-sandbox

log in console when using install script

curl -fsSL https://raw.githubusercontent.com/nrwl/nx/master/packages/install/install.sh | bash -s nx-test-bug  
Creating a sandbox with the CLI and Nx Schematics...
Cached binary found at /home/sand/.npm/node-sass/4.7.2/linux-x64-48_binding.node
Binary found at /tmp/tmp.yGHWI8Y8XM/node_modules/node-sass/vendor/linux-x64-48/binding.node
Testing binary
Binary is fine
/tmp/tmp.yGHWI8Y8XM
├─┬ @angular/cli@1.5.0  (git+https://github.com/nrwl/fix-cli-build.git#4852a4aa2247a707f86be605d13b45ec09a19e19)
│ ├─┬ @angular-devkit/build-optimizer@0.0.34 
│ │ ├─┬ loader-utils@1.1.0 
│ │ │ ├── big.js@3.2.0 
│ │ │ └── emojis-list@2.1.0 
│ │ ├── source-map@0.5.7 
│ │ └── typescript@2.6.2 
│ ├─┬ @angular-devkit/schematics@0.0.38 
│ │ ├── @angular-devkit/core@0.0.22 
│ │ └── minimist@1.2.0 
│ ├── @ngtools/json-schema@1.1.0 
│ ├─┬ @ngtools/webpack@1.8.0 
│ │ ├── enhanced-resolve@3.4.1 
│ │ ├─┬ magic-string@0.22.4 
│ │ │ └── vlq@0.2.3 
│ │ └── tree-kill@1.2.0 
│ ├── @schematics/angular@0.1.8 
│ ├─┬ autoprefixer@6.7.7 
│ │ ├─┬ browserslist@1.7.7 
│ │ │ └── electron-to-chromium@1.3.27 
│ │ ├── caniuse-db@1.0.30000777 
│ │ ├── normalize-range@0.1.2 
│ │ ├── num2fraction@1.2.2 
│ │ ├─┬ postcss@5.2.18 
│ │ │ ├─┬ chalk@1.1.3 
│ │ │ │ ├── ansi-styles@2.2.1 
│ │ │ │ └── supports-color@2.0.0 
│ │ │ └─┬ supports-color@3.2.3 
│ │ │   └── has-flag@1.0.0 
│ │ └── postcss-value-parser@3.3.0 
│ ├─┬ chalk@2.2.2 
│ │ ├─┬ ansi-styles@3.2.0 
│ │ │ └─┬ color-convert@1.9.1 
│ │ │   └── color-name@1.1.3 
│ │ ├── escape-string-regexp@1.0.5 
│ │ └─┬ supports-color@4.5.0 
│ │   └── has-flag@2.0.0 
│ ├── circular-dependency-plugin@3.0.0 
│ ├─┬ common-tags@1.5.1 
│ │ └─┬ babel-runtime@6.26.0 
│ │   ├── core-js@2.5.1 
│ │   └── regenerator-runtime@0.11.0 
│ ├─┬ copy-webpack-plugin@4.2.3 
│ │ ├── bluebird@3.5.1 
│ │ ├─┬ is-glob@4.0.0 
│ │ │ └── is-extglob@2.1.1 
│ │ └── loader-utils@0.2.17 
│ ├── core-object@3.1.5 
│ ├─┬ css-loader@0.28.7 
│ │ ├─┬ babel-code-frame@6.26.0 
│ │ │ ├─┬ chalk@1.1.3 
│ │ │ │ ├── ansi-styles@2.2.1 
│ │ │ │ └── supports-color@2.0.0 
│ │ │ ├── esutils@2.0.2 
│ │ │ └── js-tokens@3.0.2 
│ │ ├─┬ css-selector-tokenizer@0.7.0 
│ │ │ ├── cssesc@0.1.0 
│ │ │ ├── fastparse@1.1.1 
│ │ │ └─┬ regexpu-core@1.0.0 
│ │ │   ├── regenerate@1.3.3 
│ │ │   ├── regjsgen@0.2.0 
│ │ │   └─┬ regjsparser@0.1.5 
│ │ │     └── jsesc@0.5.0 
│ │ ├─┬ icss-utils@2.1.0 
│ │ │ └─┬ postcss@6.0.14 
│ │ │   ├── chalk@2.3.0 
│ │ │   └── source-map@0.6.1 
│ │ ├── lodash.camelcase@4.3.0 
│ │ ├── object-assign@4.1.1 
│ │ ├─┬ postcss-modules-extract-imports@1.1.0 
│ │ │ └─┬ postcss@6.0.14 
│ │ │   ├── chalk@2.3.0 
│ │ │   └── source-map@0.6.1 
│ │ ├─┬ postcss-modules-local-by-default@1.2.0 
│ │ │ └─┬ postcss@6.0.14 
│ │ │   ├── chalk@2.3.0 
│ │ │   └── source-map@0.6.1 
│ │ ├─┬ postcss-modules-scope@1.1.0 
│ │ │ └─┬ postcss@6.0.14 
│ │ │   ├── chalk@2.3.0 
│ │ │   └── source-map@0.6.1 
│ │ ├─┬ postcss-modules-values@1.3.0 
│ │ │ ├── icss-replace-symbols@1.1.0 
│ │ │ └─┬ postcss@6.0.14 
│ │ │   ├── chalk@2.3.0 
│ │ │   └── source-map@0.6.1 
│ │ └── source-list-map@2.0.0 
│ ├─┬ cssnano@3.10.0 
│ │ ├── decamelize@1.2.0 
│ │ ├── defined@1.0.0 
│ │ ├─┬ has@1.0.1 
│ │ │ └── function-bind@1.1.1 
│ │ ├─┬ postcss-calc@5.3.1 
│ │ │ ├── postcss-message-helpers@2.0.0 
│ │ │ └─┬ reduce-css-calc@1.3.0 
│ │ │   ├── balanced-match@0.4.2 
│ │ │   ├── math-expression-evaluator@1.2.17 
│ │ │   └─┬ reduce-function-call@1.0.2 
│ │ │     └── balanced-match@0.4.2 
│ │ ├─┬ postcss-colormin@2.2.2 
│ │ │ └─┬ colormin@1.1.2 
│ │ │   ├─┬ color@0.11.4 
│ │ │   │ ├── clone@1.0.3 
│ │ │   │ └── color-string@0.3.0 
│ │ │   └── css-color-names@0.0.4 
│ │ ├── postcss-convert-values@2.6.1 
│ │ ├── postcss-discard-comments@2.0.4 
│ │ ├── postcss-discard-duplicates@2.1.0 
│ │ ├── postcss-discard-empty@2.1.0 
│ │ ├── postcss-discard-overridden@0.1.1 
│ │ ├─┬ postcss-discard-unused@2.2.3 
│ │ │ └── uniqs@2.0.0 
│ │ ├─┬ postcss-filter-plugins@2.0.2 
│ │ │ └─┬ uniqid@4.1.1 
│ │ │   └── macaddress@0.2.8 
│ │ ├── postcss-merge-idents@2.1.7 
│ │ ├── postcss-merge-longhand@2.0.2 
│ │ ├─┬ postcss-merge-rules@2.1.2 
│ │ │ ├─┬ caniuse-api@1.6.1 
│ │ │ │ ├── lodash.memoize@4.1.2 
│ │ │ │ └── lodash.uniq@4.5.0 
│ │ │ ├─┬ postcss-selector-parser@2.2.3 
│ │ │ │ ├── flatten@1.0.2 
│ │ │ │ ├── indexes-of@1.0.1 
│ │ │ │ └── uniq@1.0.1 
│ │ │ └── vendors@1.0.1 
│ │ ├── postcss-minify-font-values@1.0.5 
│ │ ├── postcss-minify-gradients@1.0.5 
│ │ ├─┬ postcss-minify-params@1.2.2 
│ │ │ └── alphanum-sort@1.0.2 
│ │ ├── postcss-minify-selectors@2.1.1 
│ │ ├── postcss-normalize-charset@1.1.1 
│ │ ├─┬ postcss-normalize-url@3.0.8 
│ │ │ ├── is-absolute-url@2.1.0 
│ │ │ └─┬ normalize-url@1.9.1 
│ │ │   ├── prepend-http@1.0.4 
│ │ │   ├─┬ query-string@4.3.4 
│ │ │   │ └── strict-uri-encode@1.1.0 
│ │ │   └─┬ sort-keys@1.1.2 
│ │ │     └── is-plain-obj@1.1.0 
│ │ ├── postcss-ordered-values@2.2.3 
│ │ ├── postcss-reduce-idents@2.4.0 
│ │ ├── postcss-reduce-initial@1.0.1 
│ │ ├── postcss-reduce-transforms@1.0.4 
│ │ ├─┬ postcss-svgo@2.1.6 
│ │ │ ├─┬ is-svg@2.1.0 
│ │ │ │ └── html-comment-regex@1.1.1 
│ │ │ └─┬ svgo@0.7.2 
│ │ │   ├─┬ coa@1.0.4 
│ │ │   │ └── q@1.5.1 
│ │ │   ├── colors@1.1.2 
│ │ │   ├─┬ csso@2.3.2 
│ │ │   │ └─┬ clap@1.2.3 
│ │ │   │   └─┬ chalk@1.1.3 
│ │ │   │     ├── ansi-styles@2.2.1 
│ │ │   │     └── supports-color@2.0.0 
│ │ │   ├─┬ js-yaml@3.7.0 
│ │ │   │ ├─┬ argparse@1.0.9 
│ │ │   │ │ └── sprintf-js@1.0.3 
│ │ │   │ └── esprima@2.7.3 
│ │ │   ├── sax@1.2.4 
│ │ │   └── whet.extend@0.9.9 
│ │ ├── postcss-unique-selectors@2.0.2 
│ │ └── postcss-zindex@2.2.0 
│ ├── denodeify@1.2.1 
│ ├── ember-cli-string-utils@1.1.0 
│ ├── exports-loader@0.6.4 
│ ├─┬ extract-text-webpack-plugin@3.0.0 
│ │ ├── async@2.6.0 
│ │ └── schema-utils@0.3.0 
│ ├── file-loader@1.1.5 
│ ├─┬ fs-extra@4.0.2 
│ │ ├── graceful-fs@4.1.11 
│ │ ├── jsonfile@4.0.0 
│ │ └── universalify@0.1.1 
│ ├─┬ glob@7.1.2 
│ │ ├── fs.realpath@1.0.0 
│ │ ├─┬ inflight@1.0.6 
│ │ │ └── wrappy@1.0.2 
│ │ ├── inherits@2.0.3 
│ │ ├── once@1.4.0 
│ │ └── path-is-absolute@1.0.1 
│ ├─┬ html-webpack-plugin@2.30.1 
│ │ ├─┬ html-minifier@3.5.7 
│ │ │ ├─┬ camel-case@3.0.0 
│ │ │ │ ├─┬ no-case@2.3.2 
│ │ │ │ │ └── lower-case@1.1.4 
│ │ │ │ └── upper-case@1.1.3 
│ │ │ ├── clean-css@4.1.9 
│ │ │ ├── commander@2.12.2 
│ │ │ ├── he@1.1.1 
│ │ │ ├─┬ ncname@1.0.0 
│ │ │ │ └── xml-char-classes@1.0.0 
│ │ │ ├── param-case@2.1.1 
│ │ │ ├── relateurl@0.2.7 
│ │ │ └─┬ uglify-js@3.2.1 
│ │ │   └── source-map@0.6.1 
│ │ ├── loader-utils@0.2.17 
│ │ ├─┬ pretty-error@2.1.1 
│ │ │ ├─┬ renderkid@2.0.1 
│ │ │ │ ├─┬ css-select@1.2.0 
│ │ │ │ │ ├── boolbase@1.0.0 
│ │ │ │ │ ├── css-what@2.1.0 
│ │ │ │ │ ├─┬ domutils@1.5.1 
│ │ │ │ │ │ └─┬ dom-serializer@0.1.0 
│ │ │ │ │ │   ├── domelementtype@1.1.3 
│ │ │ │ │ │   └── entities@1.1.1 
│ │ │ │ │ └── nth-check@1.0.1 
│ │ │ │ ├─┬ dom-converter@0.1.4 
│ │ │ │ │ └── utila@0.3.3 
│ │ │ │ ├─┬ htmlparser2@3.3.0 
│ │ │ │ │ ├── domelementtype@1.3.0 
│ │ │ │ │ ├── domhandler@2.1.0 
│ │ │ │ │ ├── domutils@1.1.6 
│ │ │ │ │ └─┬ readable-stream@1.0.34 
│ │ │ │ │   ├── isarray@0.0.1 
│ │ │ │ │   └── string_decoder@0.10.31 
│ │ │ │ └── utila@0.3.3 
│ │ │ └── utila@0.4.0 
│ │ └── toposort@1.0.6 
│ ├─┬ istanbul-instrumenter-loader@2.0.0 
│ │ ├── convert-source-map@1.5.1 
│ │ ├─┬ istanbul-lib-instrument@1.9.1 
│ │ │ ├─┬ babel-generator@6.26.0 
│ │ │ │ ├── babel-messages@6.23.0 
│ │ │ │ ├─┬ detect-indent@4.0.0 
│ │ │ │ │ └─┬ repeating@2.0.1 
│ │ │ │ │   └── is-finite@1.0.2 
│ │ │ │ ├── jsesc@1.3.0 
│ │ │ │ └── trim-right@1.0.1 
│ │ │ ├── babel-template@6.26.0 
│ │ │ ├─┬ babel-traverse@6.26.0 
│ │ │ │ ├── globals@9.18.0 
│ │ │ │ └─┬ invariant@2.2.2 
│ │ │ │   └── loose-envify@1.3.1 
│ │ │ ├─┬ babel-types@6.26.0 
│ │ │ │ └── to-fast-properties@1.0.3 
│ │ │ ├── babylon@6.18.0 
│ │ │ └── istanbul-lib-coverage@1.1.1 
│ │ └── loader-utils@0.2.17 
│ ├── karma-source-map-support@1.2.0 
│ ├─┬ less@2.7.3 
│ │ ├─┬ errno@0.1.4 
│ │ │ └── prr@0.0.0 
│ │ ├── image-size@0.5.5 
│ │ ├── mime@1.6.0 
│ │ ├─┬ mkdirp@0.5.1 
│ │ │ └── minimist@0.0.8 
│ │ ├─┬ promise@7.3.1 
│ │ │ └── asap@2.0.6 
│ │ └─┬ request@2.81.0 
│ │   ├── aws-sign2@0.6.0 
│ │   ├── aws4@1.6.0 
│ │   ├── caseless@0.12.0 
│ │   ├─┬ combined-stream@1.0.5 
│ │   │ └── delayed-stream@1.0.0 
│ │   ├── extend@3.0.1 
│ │   ├── forever-agent@0.6.1 
│ │   ├─┬ form-data@2.1.4 
│ │   │ └── asynckit@0.4.0 
│ │   ├─┬ har-validator@4.2.1 
│ │   │ ├─┬ ajv@4.11.8 
│ │   │ │ └─┬ json-stable-stringify@1.0.1 
│ │   │ │   └── jsonify@0.0.0 
│ │   │ └── har-schema@1.0.5 
│ │   ├─┬ hawk@3.1.3 
│ │   │ ├── boom@2.10.1 
│ │   │ ├── cryptiles@2.0.5 
│ │   │ ├── hoek@2.16.3 
│ │   │ └── sntp@1.0.9 
│ │   ├─┬ http-signature@1.1.1 
│ │   │ ├── assert-plus@0.2.0 
│ │   │ ├─┬ jsprim@1.4.1 
│ │   │ │ ├── assert-plus@1.0.0 
│ │   │ │ ├── extsprintf@1.3.0 
│ │   │ │ ├── json-schema@0.2.3 
│ │   │ │ └─┬ verror@1.10.0 
│ │   │ │   └── assert-plus@1.0.0 
│ │   │ └─┬ sshpk@1.13.1 
│ │   │   ├── asn1@0.2.3 
│ │   │   ├── assert-plus@1.0.0 
│ │   │   ├── bcrypt-pbkdf@1.0.1 
│ │   │   ├─┬ dashdash@1.14.1 
│ │   │   │ └── assert-plus@1.0.0 
│ │   │   ├── ecc-jsbn@0.1.1 
│ │   │   ├─┬ getpass@0.1.7 
│ │   │   │ └── assert-plus@1.0.0 
│ │   │   ├── jsbn@0.1.1 
│ │   │   └── tweetnacl@0.14.5 
│ │   ├── is-typedarray@1.0.0 
│ │   ├── isstream@0.1.2 
│ │   ├── json-stringify-safe@5.0.1 
│ │   ├─┬ mime-types@2.1.17 
│ │   │ └── mime-db@1.30.0 
│ │   ├── oauth-sign@0.8.2 
│ │   ├── performance-now@0.2.0 
│ │   ├── qs@6.4.0 
│ │   ├── safe-buffer@5.1.1 
│ │   ├── stringstream@0.0.5 
│ │   ├── tough-cookie@2.3.3 
│ │   ├── tunnel-agent@0.6.0 
│ │   └── uuid@3.1.0 
│ ├─┬ less-loader@4.0.5 
│ │ ├── clone@2.1.1 
│ │ └── pify@2.3.0 
│ ├─┬ license-webpack-plugin@1.1.1 
│ │ └── ejs@2.5.7 
│ ├── lodash@4.17.4 
│ ├─┬ memory-fs@0.4.1 
│ │ └─┬ readable-stream@2.3.3 
│ │   ├── core-util-is@1.0.2 
│ │   ├── isarray@1.0.0 
│ │   ├── process-nextick-args@1.0.7 
│ │   ├── string_decoder@1.0.3 
│ │   └── util-deprecate@1.0.2 
│ ├─┬ minimatch@3.0.4 
│ │ └─┬ brace-expansion@1.1.8 
│ │   └── concat-map@0.0.1 
│ ├── node-modules-path@1.0.1 
│ ├─┬ node-sass@4.7.2 
│ │ ├── async-foreach@0.1.3 
│ │ ├─┬ chalk@1.1.3 
│ │ │ ├── ansi-styles@2.2.1 
│ │ │ ├── has-ansi@2.0.0 
│ │ │ └── supports-color@2.0.0 
│ │ ├─┬ cross-spawn@3.0.1 
│ │ │ ├─┬ lru-cache@4.1.1 
│ │ │ │ ├── pseudomap@1.0.2 
│ │ │ │ └── yallist@2.1.2 
│ │ │ └─┬ which@1.3.0 
│ │ │   └── isexe@2.0.0 
│ │ ├─┬ gaze@1.1.2 
│ │ │ └── globule@1.2.0 
│ │ ├── get-stdin@4.0.1 
│ │ ├── in-publish@2.0.0 
│ │ ├── lodash.assign@4.2.0 
│ │ ├── lodash.clonedeep@4.5.0 
│ │ ├── lodash.mergewith@4.6.0 
│ │ ├─┬ meow@3.7.0 
│ │ │ ├─┬ camelcase-keys@2.1.0 
│ │ │ │ └── camelcase@2.1.1 
│ │ │ ├─┬ loud-rejection@1.6.0 
│ │ │ │ ├─┬ currently-unhandled@0.4.1 
│ │ │ │ │ └── array-find-index@1.0.2 
│ │ │ │ └── signal-exit@3.0.2 
│ │ │ ├── map-obj@1.0.1 
│ │ │ ├─┬ normalize-package-data@2.4.0 
│ │ │ │ ├── hosted-git-info@2.5.0 
│ │ │ │ ├─┬ is-builtin-module@1.0.0 
│ │ │ │ │ └── builtin-modules@1.1.1 
│ │ │ │ └─┬ validate-npm-package-license@3.0.1 
│ │ │ │   ├─┬ spdx-correct@1.0.2 
│ │ │ │   │ └── spdx-license-ids@1.2.2 
│ │ │ │   └── spdx-expression-parse@1.0.4 
│ │ │ ├─┬ read-pkg-up@1.0.1 
│ │ │ │ ├─┬ find-up@1.1.2 
│ │ │ │ │ └── path-exists@2.1.0 
│ │ │ │ └─┬ read-pkg@1.1.0 
│ │ │ │   ├─┬ load-json-file@1.1.0 
│ │ │ │   │ └─┬ strip-bom@2.0.0 
│ │ │ │   │   └── is-utf8@0.2.1 
│ │ │ │   └── path-type@1.1.0 
│ │ │ ├─┬ redent@1.0.0 
│ │ │ │ ├── indent-string@2.1.0 
│ │ │ │ └── strip-indent@1.0.1 
│ │ │ └── trim-newlines@1.0.0 
│ │ ├── nan@2.8.0 
│ │ ├─┬ node-gyp@3.6.2 
│ │ │ ├── fstream@1.0.11 
│ │ │ ├── nopt@3.0.6 
│ │ │ ├── rimraf@2.6.2 
│ │ │ ├── semver@5.3.0 
│ │ │ └─┬ tar@2.2.1 
│ │ │   └── block-stream@0.0.9 
│ │ ├─┬ npmlog@4.1.2 
│ │ │ ├─┬ are-we-there-yet@1.1.4 
│ │ │ │ └── delegates@1.0.0 
│ │ │ ├── console-control-strings@1.1.0 
│ │ │ ├─┬ gauge@2.7.4 
│ │ │ │ ├── aproba@1.2.0 
│ │ │ │ ├── has-unicode@2.0.1 
│ │ │ │ └── wide-align@1.1.2 
│ │ │ └── set-blocking@2.0.0 
│ │ ├─┬ request@2.79.0 
│ │ │ ├── caseless@0.11.0 
│ │ │ ├─┬ har-validator@2.0.6 
│ │ │ │ ├─┬ is-my-json-valid@2.16.1 
│ │ │ │ │ ├── generate-function@2.0.0 
│ │ │ │ │ ├─┬ generate-object-property@1.2.0 
│ │ │ │ │ │ └── is-property@1.0.2 
│ │ │ │ │ └── jsonpointer@4.0.1 
│ │ │ │ └─┬ pinkie-promise@2.0.1 
│ │ │ │   └── pinkie@2.0.4 
│ │ │ ├── qs@6.3.2 
│ │ │ └── tunnel-agent@0.4.3 
│ │ ├─┬ sass-graph@2.2.4 
│ │ │ ├─┬ scss-tokenizer@0.2.3 
│ │ │ │ └── source-map@0.4.4 
│ │ │ └─┬ yargs@7.1.0 
│ │ │   ├── camelcase@3.0.0 
│ │ │   └─┬ yargs-parser@5.0.0 
│ │ │     └── camelcase@3.0.0 
│ │ ├── stdout-stream@1.4.0 
│ │ └─┬ true-case-path@1.0.2 
│ │   └── glob@6.0.4 
│ ├─┬ nopt@4.0.1 
│ │ ├── abbrev@1.1.1 
│ │ └─┬ osenv@0.1.4 
│ │   ├── os-homedir@1.0.2 
│ │   └── os-tmpdir@1.0.2 
│ ├─┬ opn@5.1.0 
│ │ └── is-wsl@1.1.0 
│ ├─┬ portfinder@1.0.13 
│ │ ├── async@1.5.2 
│ │ └─┬ debug@2.6.9 
│ │   └── ms@2.0.0 
│ ├─┬ postcss-custom-properties@6.2.0 
│ │ ├── balanced-match@1.0.0 
│ │ └─┬ postcss@6.0.14 
│ │   ├── chalk@2.3.0 
│ │   └── source-map@0.6.1 
│ ├─┬ postcss-loader@1.3.3 
│ │ └─┬ postcss-load-config@1.2.0 
│ │   ├─┬ cosmiconfig@2.2.2 
│ │   │ ├── is-directory@0.3.1 
│ │   │ ├─┬ parse-json@2.2.0 
│ │   │ │ └─┬ error-ex@1.3.1 
│ │   │ │   └── is-arrayish@0.2.1 
│ │   │ └── require-from-string@1.2.1 
│ │   ├── postcss-load-options@1.2.0 
│ │   └── postcss-load-plugins@2.3.0 
│ ├─┬ postcss-url@5.1.2 
│ │ ├─┬ directory-encoder@0.7.2 
│ │ │ ├─┬ fs-extra@0.23.1 
│ │ │ │ └── jsonfile@2.4.0 
│ │ │ ├─┬ handlebars@1.3.0 
│ │ │ │ ├─┬ optimist@0.3.7 
│ │ │ │ │ └── wordwrap@0.0.3 
│ │ │ │ └─┬ uglify-js@2.3.6 
│ │ │ │   ├── async@0.2.10 
│ │ │ │   └── source-map@0.1.43 
│ │ │ └─┬ img-stats@0.5.2 
│ │ │   └── xmldom@0.1.27 
│ │ └── js-base64@2.4.0 
│ ├── raw-loader@0.5.1 
│ ├─┬ resolve@1.5.0 
│ │ └── path-parse@1.0.5 
│ ├─┬ rxjs@5.5.3 
│ │ └── symbol-observable@1.1.0 
│ ├─┬ sass-loader@6.0.6 
│ │ ├─┬ clone-deep@0.3.0 
│ │ │ ├─┬ for-own@1.0.0 
│ │ │ │ └── for-in@1.0.2 
│ │ │ ├─┬ is-plain-object@2.0.4 
│ │ │ │ └── isobject@3.0.1 
│ │ │ ├── kind-of@3.2.2 
│ │ │ └─┬ shallow-clone@0.1.2 
│ │ │   ├── is-extendable@0.1.1 
│ │ │   ├── kind-of@2.0.1 
│ │ │   ├── lazy-cache@0.2.7 
│ │ │   └─┬ mixin-object@2.0.1 
│ │ │     └── for-in@0.1.8 
│ │ ├── lodash.tail@4.1.1 
│ │ └── pify@3.0.0 
│ ├── semver@5.4.1 
│ ├── silent-error@1.1.0 
│ ├─┬ source-map-loader@0.2.3 
│ │ ├── loader-utils@0.2.17 
│ │ └── source-map@0.6.1 
│ ├── source-map-support@0.4.18 
│ ├── style-loader@0.13.2 
│ ├─┬ stylus@0.54.5 
│ │ ├── css-parse@1.7.0 
│ │ ├── glob@7.0.6 
│ │ ├── sax@0.5.8 
│ │ └─┬ source-map@0.1.43 
│ │   └── amdefine@1.0.1 
│ ├─┬ stylus-loader@3.0.1 
│ │ └── when@3.6.4 
│ ├─┬ uglifyjs-webpack-plugin@1.0.0 
│ │ ├─┬ cacache@10.0.1 
│ │ │ ├── chownr@1.0.1 
│ │ │ ├─┬ mississippi@1.3.0 
│ │ │ │ ├─┬ concat-stream@1.6.0 
│ │ │ │ │ └── typedarray@0.0.6 
│ │ │ │ ├─┬ duplexify@3.5.1 
│ │ │ │ │ └── stream-shift@1.0.0 
│ │ │ │ ├── end-of-stream@1.4.0 
│ │ │ │ ├── flush-write-stream@1.0.2 
│ │ │ │ ├── from2@2.3.0 
│ │ │ │ ├─┬ parallel-transform@1.1.0 
│ │ │ │ │ └── cyclist@0.2.2 
│ │ │ │ ├── pump@1.0.3 
│ │ │ │ ├── pumpify@1.3.5 
│ │ │ │ ├── stream-each@1.2.2 
│ │ │ │ └── through2@2.0.3 
│ │ │ ├─┬ move-concurrently@1.0.1 
│ │ │ │ ├─┬ copy-concurrently@1.0.5 
│ │ │ │ │ └── iferr@0.1.5 
│ │ │ │ ├─┬ fs-write-stream-atomic@1.0.10 
│ │ │ │ │ └── imurmurhash@0.1.4 
│ │ │ │ └── run-queue@1.0.3 
│ │ │ ├── promise-inflight@1.0.1 
│ │ │ ├── ssri@5.0.0 
│ │ │ ├─┬ unique-filename@1.1.0 
│ │ │ │ └── unique-slug@2.0.0 
│ │ │ └── y18n@3.2.1 
│ │ ├─┬ find-cache-dir@1.0.0 
│ │ │ ├── commondir@1.0.1 
│ │ │ ├─┬ make-dir@1.1.0 
│ │ │ │ └── pify@3.0.0 
│ │ │ └─┬ pkg-dir@2.0.0 
│ │ │   └─┬ find-up@2.1.0 
│ │ │     └─┬ locate-path@2.0.0 
│ │ │       ├─┬ p-locate@2.0.0 
│ │ │       │ └── p-limit@1.1.0 
│ │ │       └── path-exists@3.0.0 
│ │ ├─┬ uglify-es@3.2.1 
│ │ │ └── source-map@0.6.1 
│ │ └─┬ worker-farm@1.5.2 
│ │   └── xtend@4.0.1 
│ ├── url-loader@0.6.2 
│ ├─┬ webpack@3.8.1 
│ │ ├── acorn@5.2.1 
│ │ ├─┬ acorn-dynamic-import@2.0.2 
│ │ │ └── acorn@4.0.13 
│ │ ├─┬ ajv@5.5.1 
│ │ │ ├── co@4.6.0 
│ │ │ ├── fast-deep-equal@1.0.0 
│ │ │ ├── fast-json-stable-stringify@2.0.0 
│ │ │ └── json-schema-traverse@0.3.1 
│ │ ├── ajv-keywords@2.1.1 
│ │ ├─┬ escope@3.6.0 
│ │ │ ├─┬ es6-map@0.1.5 
│ │ │ │ ├── d@1.0.0 
│ │ │ │ ├── es5-ext@0.10.37 
│ │ │ │ ├── es6-iterator@2.0.3 
│ │ │ │ ├── es6-set@0.1.5 
│ │ │ │ ├── es6-symbol@3.1.1 
│ │ │ │ └── event-emitter@0.3.5 
│ │ │ ├── es6-weak-map@2.0.2 
│ │ │ ├── esrecurse@4.2.0 
│ │ │ └── estraverse@4.2.0 
│ │ ├── interpret@1.1.0 
│ │ ├── json-loader@0.5.7 
│ │ ├── json5@0.5.1 
│ │ ├── loader-runner@2.3.0 
│ │ ├─┬ node-libs-browser@2.1.0 
│ │ │ ├── assert@1.4.1 
│ │ │ ├─┬ browserify-zlib@0.2.0 
│ │ │ │ └── pako@1.0.6 
│ │ │ ├─┬ buffer@4.9.1 
│ │ │ │ ├── base64-js@1.2.1 
│ │ │ │ └── ieee754@1.1.8 
│ │ │ ├─┬ console-browserify@1.1.0 
│ │ │ │ └── date-now@0.1.4 
│ │ │ ├── constants-browserify@1.0.0 
│ │ │ ├─┬ crypto-browserify@3.12.0 
│ │ │ │ ├─┬ browserify-cipher@1.0.0 
│ │ │ │ │ ├─┬ browserify-aes@1.1.1 
│ │ │ │ │ │ └── buffer-xor@1.0.3 
│ │ │ │ │ ├─┬ browserify-des@1.0.0 
│ │ │ │ │ │ └── des.js@1.0.0 
│ │ │ │ │ └─┬ evp_bytestokey@1.0.3 
│ │ │ │ │   └─┬ md5.js@1.3.4 
│ │ │ │ │     └── hash-base@3.0.4 
│ │ │ │ ├─┬ browserify-sign@4.0.4 
│ │ │ │ │ ├── bn.js@4.11.8 
│ │ │ │ │ ├── browserify-rsa@4.0.1 
│ │ │ │ │ ├─┬ elliptic@6.4.0 
│ │ │ │ │ │ ├── brorand@1.1.0 
│ │ │ │ │ │ ├── hash.js@1.1.3 
│ │ │ │ │ │ ├── hmac-drbg@1.0.1 
│ │ │ │ │ │ └── minimalistic-crypto-utils@1.0.1 
│ │ │ │ │ └─┬ parse-asn1@5.1.0 
│ │ │ │ │   └── asn1.js@4.9.2 
│ │ │ │ ├── create-ecdh@4.0.0 
│ │ │ │ ├─┬ create-hash@1.1.3 
│ │ │ │ │ ├── cipher-base@1.0.4 
│ │ │ │ │ ├─┬ ripemd160@2.0.1 
│ │ │ │ │ │ └── hash-base@2.0.2 
│ │ │ │ │ └── sha.js@2.4.9 
│ │ │ │ ├── create-hmac@1.1.6 
│ │ │ │ ├─┬ diffie-hellman@5.0.2 
│ │ │ │ │ └── miller-rabin@4.0.1 
│ │ │ │ ├── pbkdf2@3.0.14 
│ │ │ │ ├── public-encrypt@4.0.0 
│ │ │ │ ├── randombytes@2.0.5 
│ │ │ │ └── randomfill@1.0.3 
│ │ │ ├── domain-browser@1.1.7 
│ │ │ ├── events@1.1.1 
│ │ │ ├── https-browserify@1.0.0 
│ │ │ ├── os-browserify@0.3.0 
│ │ │ ├── path-browserify@0.0.0 
│ │ │ ├── process@0.11.10 
│ │ │ ├── punycode@1.4.1 
│ │ │ ├── querystring-es3@0.2.1 
│ │ │ ├── stream-browserify@2.0.1 
│ │ │ ├─┬ stream-http@2.7.2 
│ │ │ │ ├── builtin-status-codes@3.0.0 
│ │ │ │ └── to-arraybuffer@1.0.1 
│ │ │ ├─┬ timers-browserify@2.0.4 
│ │ │ │ └── setimmediate@1.0.5 
│ │ │ ├── tty-browserify@0.0.0 
│ │ │ ├─┬ url@0.11.0 
│ │ │ │ ├── punycode@1.3.2 
│ │ │ │ └── querystring@0.2.0 
│ │ │ ├─┬ util@0.10.3 
│ │ │ │ └── inherits@2.0.1 
│ │ │ └─┬ vm-browserify@0.0.4 
│ │ │   └── indexof@0.0.1 
│ │ ├── tapable@0.2.8 
│ │ ├─┬ uglifyjs-webpack-plugin@0.4.6 
│ │ │ └─┬ uglify-js@2.8.29 
│ │ │   └─┬ yargs@3.10.0 
│ │ │     ├── camelcase@1.2.1 
│ │ │     └─┬ cliui@2.1.0 
│ │ │       └── wordwrap@0.0.2 
│ │ ├── watchpack@1.4.0 
│ │ └─┬ yargs@8.0.2 
│ │   ├── camelcase@4.1.0 
│ │   ├─┬ cliui@3.2.0 
│ │   │ ├── string-width@1.0.2 
│ │   │ └── wrap-ansi@2.1.0 
│ │   ├── get-caller-file@1.0.2 
│ │   ├─┬ os-locale@2.1.0 
│ │   │ ├─┬ execa@0.7.0 
│ │   │ │ ├─┬ cross-spawn@5.1.0 
│ │   │ │ │ └─┬ shebang-command@1.2.0 
│ │   │ │ │   └── shebang-regex@1.0.0 
│ │   │ │ ├── get-stream@3.0.0 
│ │   │ │ ├── is-stream@1.1.0 
│ │   │ │ ├─┬ npm-run-path@2.0.2 
│ │   │ │ │ └── path-key@2.0.1 
│ │   │ │ ├── p-finally@1.0.0 
│ │   │ │ └── strip-eof@1.0.0 
│ │   │ ├─┬ lcid@1.0.0 
│ │   │ │ └── invert-kv@1.0.0 
│ │   │ └─┬ mem@1.1.0 
│ │   │   └── mimic-fn@1.1.0 
│ │   ├─┬ read-pkg-up@2.0.0 
│ │   │ ├── find-up@2.1.0 
│ │   │ └─┬ read-pkg@2.0.0 
│ │   │   ├─┬ load-json-file@2.0.0 
│ │   │   │ └── strip-bom@3.0.0 
│ │   │   └── path-type@2.0.0 
│ │   ├── require-directory@2.1.1 
│ │   ├── require-main-filename@1.0.1 
│ │   ├─┬ string-width@2.1.1 
│ │   │ ├── is-fullwidth-code-point@2.0.0 
│ │   │ └─┬ strip-ansi@4.0.0 
│ │   │   └── ansi-regex@3.0.0 
│ │   ├── which-module@2.0.0 
│ │   └─┬ yargs-parser@7.0.0 
│ │     └── camelcase@4.1.0 
│ ├─┬ webpack-concat-plugin@1.4.0 
│ │ ├─┬ md5@2.2.1 
│ │ │ ├── charenc@0.0.2 
│ │ │ ├── crypt@0.0.2 
│ │ │ └── is-buffer@1.1.6 
│ │ └─┬ uglify-js@2.8.29 
│ │   ├── uglify-to-browserify@1.0.2 
│ │   └─┬ yargs@3.10.0 
│ │     ├── camelcase@1.2.1 
│ │     ├─┬ cliui@2.1.0 
│ │     │ ├─┬ center-align@0.1.3 
│ │     │ │ ├─┬ align-text@0.1.4 
│ │     │ │ │ ├── longest@1.0.1 
│ │     │ │ │ └── repeat-string@1.6.1 
│ │     │ │ └── lazy-cache@1.0.4 
│ │     │ ├── right-align@0.1.3 
│ │     │ └── wordwrap@0.0.2 
│ │     └── window-size@0.1.0 
│ ├─┬ webpack-dev-middleware@1.12.2 
│ │ ├── range-parser@1.2.0 
│ │ └── time-stamp@2.0.0 
│ ├─┬ webpack-dev-server@2.9.5 
│ │ ├── ansi-html@0.0.7 
│ │ ├─┬ array-includes@3.0.3 
│ │ │ ├─┬ define-properties@1.1.2 
│ │ │ │ ├── foreach@2.0.5 
│ │ │ │ └── object-keys@1.0.11 
│ │ │ └─┬ es-abstract@1.10.0 
│ │ │   ├─┬ es-to-primitive@1.1.1 
│ │ │   │ ├── is-date-object@1.0.1 
│ │ │   │ └── is-symbol@1.0.1 
│ │ │   ├── is-callable@1.1.3 
│ │ │   └── is-regex@1.0.4 
│ │ ├─┬ bonjour@3.5.0 
│ │ │ ├── array-flatten@2.1.1 
│ │ │ ├── deep-equal@1.0.1 
│ │ │ ├── dns-equal@1.0.0 
│ │ │ ├─┬ dns-txt@2.0.2 
│ │ │ │ └── buffer-indexof@1.1.1 
│ │ │ ├─┬ multicast-dns@6.2.1 
│ │ │ │ ├── dns-packet@1.2.2 
│ │ │ │ └── thunky@0.1.0 
│ │ │ └── multicast-dns-service-types@1.1.0 
│ │ ├─┬ chokidar@1.7.0 
│ │ │ ├─┬ anymatch@1.3.2 
│ │ │ │ └─┬ normalize-path@2.1.1 
│ │ │ │   └── remove-trailing-separator@1.1.0 
│ │ │ ├── async-each@1.0.1 
│ │ │ ├─┬ glob-parent@2.0.0 
│ │ │ │ └─┬ is-glob@2.0.1 
│ │ │ │   └── is-extglob@1.0.0 
│ │ │ ├─┬ is-binary-path@1.0.1 
│ │ │ │ └── binary-extensions@1.11.0 
│ │ │ ├─┬ is-glob@2.0.1 
│ │ │ │ └── is-extglob@1.0.0 
│ │ │ └─┬ readdirp@2.1.0 
│ │ │   └── set-immediate-shim@1.0.1 
│ │ ├─┬ compression@1.7.1 
│ │ │ ├─┬ accepts@1.3.4 
│ │ │ │ └── negotiator@0.6.1 
│ │ │ ├── bytes@3.0.0 
│ │ │ ├── compressible@2.0.12 
│ │ │ ├── on-headers@1.0.1 
│ │ │ └── vary@1.1.2 
│ │ ├── connect-history-api-fallback@1.5.0 
│ │ ├── debug@3.1.0 
│ │ ├─┬ del@3.0.0 
│ │ │ ├─┬ globby@6.1.0 
│ │ │ │ └─┬ array-union@1.0.2 
│ │ │ │   └── array-uniq@1.0.3 
│ │ │ ├── is-path-cwd@1.0.0 
│ │ │ ├─┬ is-path-in-cwd@1.0.0 
│ │ │ │ └─┬ is-path-inside@1.0.1 
│ │ │ │   └── path-is-inside@1.0.2 
│ │ │ ├── p-map@1.2.0 
│ │ │ └── pify@3.0.0 
│ │ ├─┬ express@4.16.2 
│ │ │ ├── array-flatten@1.1.1 
│ │ │ ├─┬ body-parser@1.18.2 
│ │ │ │ ├── iconv-lite@0.4.19 
│ │ │ │ ├── qs@6.5.1 
│ │ │ │ └── raw-body@2.3.2 
│ │ │ ├── content-disposition@0.5.2 
│ │ │ ├── content-type@1.0.4 
│ │ │ ├── cookie@0.3.1 
│ │ │ ├── cookie-signature@1.0.6 
│ │ │ ├── depd@1.1.1 
│ │ │ ├── encodeurl@1.0.1 
│ │ │ ├── escape-html@1.0.3 
│ │ │ ├── etag@1.8.1 
│ │ │ ├─┬ finalhandler@1.1.0 
│ │ │ │ └── unpipe@1.0.0 
│ │ │ ├── fresh@0.5.2 
│ │ │ ├── merge-descriptors@1.0.1 
│ │ │ ├── methods@1.1.2 
│ │ │ ├─┬ on-finished@2.3.0 
│ │ │ │ └── ee-first@1.1.1 
│ │ │ ├── parseurl@1.3.2 
│ │ │ ├── path-to-regexp@0.1.7 
│ │ │ ├─┬ proxy-addr@2.0.2 
│ │ │ │ ├── forwarded@0.1.2 
│ │ │ │ └── ipaddr.js@1.5.2 
│ │ │ ├── qs@6.5.1 
│ │ │ ├─┬ send@0.16.1 
│ │ │ │ ├── destroy@1.0.4 
│ │ │ │ └── mime@1.4.1 
│ │ │ ├── serve-static@1.13.1 
│ │ │ ├── setprototypeof@1.1.0 
│ │ │ ├── statuses@1.3.1 
│ │ │ ├─┬ type-is@1.6.15 
│ │ │ │ └── media-typer@0.3.0 
│ │ │ └── utils-merge@1.0.1 
│ │ ├── html-entities@1.2.1 
│ │ ├─┬ http-proxy-middleware@0.17.4 
│ │ │ ├─┬ http-proxy@1.16.2 
│ │ │ │ ├── eventemitter3@1.2.0 
│ │ │ │ └── requires-port@1.0.0 
│ │ │ ├── is-glob@3.1.0 
│ │ │ └─┬ micromatch@2.3.11 
│ │ │   ├─┬ arr-diff@2.0.0 
│ │ │   │ └── arr-flatten@1.1.0 
│ │ │   ├── array-unique@0.2.1 
│ │ │   ├─┬ braces@1.8.5 
│ │ │   │ ├─┬ expand-range@1.8.2 
│ │ │   │ │ └─┬ fill-range@2.2.3 
│ │ │   │ │   ├── is-number@2.1.0 
│ │ │   │ │   ├── isobject@2.1.0 
│ │ │   │ │   └─┬ randomatic@1.1.7 
│ │ │   │ │     ├─┬ is-number@3.0.0 
│ │ │   │ │     │ └── kind-of@3.2.2 
│ │ │   │ │     └── kind-of@4.0.0 
│ │ │   │ ├── preserve@0.2.0 
│ │ │   │ └── repeat-element@1.1.2 
│ │ │   ├─┬ expand-brackets@0.1.5 
│ │ │   │ └── is-posix-bracket@0.1.1 
│ │ │   ├─┬ extglob@0.3.2 
│ │ │   │ └── is-extglob@1.0.0 
│ │ │   ├── filename-regex@2.0.1 
│ │ │   ├── is-extglob@1.0.0 
│ │ │   ├── is-glob@2.0.1 
│ │ │   ├─┬ object.omit@2.0.1 
│ │ │   │ └── for-own@0.1.5 
│ │ │   ├─┬ parse-glob@3.0.4 
│ │ │   │ ├─┬ glob-base@0.3.0 
│ │ │   │ │ └─┬ is-glob@2.0.1 
│ │ │   │ │   └── is-extglob@1.0.0 
│ │ │   │ ├── is-dotfile@1.0.3 
│ │ │   │ ├── is-extglob@1.0.0 
│ │ │   │ └── is-glob@2.0.1 
│ │ │   └─┬ regex-cache@0.4.4 
│ │ │     └─┬ is-equal-shallow@0.1.3 
│ │ │       └── is-primitive@2.0.0 
│ │ ├─┬ import-local@0.1.1 
│ │ │ └─┬ resolve-cwd@2.0.0 
│ │ │   └── resolve-from@3.0.0 
│ │ ├── internal-ip@1.2.0 
│ │ ├── ip@1.1.5 
│ │ ├── killable@1.0.0 
│ │ ├── loglevel@1.6.0 
│ │ ├─┬ selfsigned@1.10.1 
│ │ │ └── node-forge@0.6.33 
│ │ ├─┬ serve-index@1.9.1 
│ │ │ ├── batch@0.6.1 
│ │ │ └─┬ http-errors@1.6.2 
│ │ │   └── setprototypeof@1.0.3 
│ │ ├─┬ sockjs@0.3.18 
│ │ │ ├─┬ faye-websocket@0.10.0 
│ │ │ │ └─┬ websocket-driver@0.7.0 
│ │ │ │   ├── http-parser-js@0.4.9 
│ │ │ │   └── websocket-extensions@0.1.3 
│ │ │ └── uuid@2.0.3 
│ │ ├─┬ sockjs-client@1.1.4 
│ │ │ ├─┬ eventsource@0.1.6 
│ │ │ │ └─┬ original@1.0.0 
│ │ │ │   └─┬ url-parse@1.0.5 
│ │ │ │     └── querystringify@0.0.4 
│ │ │ ├── faye-websocket@0.11.1 
│ │ │ ├── json3@3.3.2 
│ │ │ └─┬ url-parse@1.2.0 
│ │ │   └── querystringify@1.0.0 
│ │ ├─┬ spdy@3.4.7 
│ │ │ ├── handle-thing@1.2.5 
│ │ │ ├── http-deceiver@1.2.7 
│ │ │ ├── select-hose@2.0.0 
│ │ │ └─┬ spdy-transport@2.0.20 
│ │ │   ├── detect-node@2.0.3 
│ │ │   ├── hpack.js@2.1.6 
│ │ │   ├── obuf@1.1.1 
│ │ │   └─┬ wbuf@1.7.2 
│ │ │     └── minimalistic-assert@1.0.0 
│ │ ├─┬ strip-ansi@3.0.1 
│ │ │ └── ansi-regex@2.1.1 
│ │ └─┬ yargs@6.6.0 
│ │   ├── camelcase@3.0.0 
│ │   ├── cliui@3.2.0 
│ │   ├── os-locale@1.4.0 
│ │   ├─┬ string-width@1.0.2 
│ │   │ ├── code-point-at@1.1.0 
│ │   │ └─┬ is-fullwidth-code-point@1.0.0 
│ │   │   └── number-is-nan@1.0.1 
│ │   ├── which-module@1.0.0 
│ │   └── yargs-parser@4.2.1 
│ ├── webpack-merge@4.1.1 
│ ├─┬ webpack-sources@1.1.0 
│ │ └── source-map@0.6.1 
│ ├─┬ webpack-subresource-integrity@1.0.1 
│ │ └─┬ webpack-core@0.6.9 
│ │   ├── source-list-map@0.1.8 
│ │   └── source-map@0.4.4 
│ └── zone.js@0.8.18 
└── @nrwl/schematics@0.3.0 

Creating a new project...
  create nx-test-bug/README.md (1862 bytes)
  create nx-test-bug/.angular-cli.json (740 bytes)
  create nx-test-bug/.editorconfig (245 bytes)
  create nx-test-bug/.gitignore (516 bytes)
  create nx-test-bug/apps/.gitkeep (1 bytes)
  create nx-test-bug/karma.conf.js (923 bytes)
  create nx-test-bug/libs/.gitkeep (0 bytes)
  create nx-test-bug/package.json (1728 bytes)
  create nx-test-bug/protractor.conf.js (721 bytes)
  create nx-test-bug/test.js (1227 bytes)
  create nx-test-bug/tsconfig.app.json (304 bytes)
  create nx-test-bug/tsconfig.e2e.json (375 bytes)
  create nx-test-bug/tsconfig.json (474 bytes)
  create nx-test-bug/tsconfig.spec.json (370 bytes)
  create nx-test-bug/tslint.json (2619 bytes)
Installing packages for tooling via yarn.
yarn install v1.3.2
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents@1.1.3: The platform "linux" is incompatible with this module.
info "fsevents@1.1.3" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > @angular/compiler-cli@5.0.0" has incorrect peer dependency "typescript@>=2.4.2 <2.5".
warning "@angular/compiler-cli > tsickle@0.24.1" has incorrect peer dependency "typescript@2.4.2".
warning " > codelyzer@3.1.2" has incorrect peer dependency "@angular/compiler@^2.3.1 || >=4.0.0-beta <5.0.0".
warning " > codelyzer@3.1.2" has incorrect peer dependency "@angular/core@^2.3.1 || >=4.0.0-beta <5.0.0".
[4/4] Building fresh packages...
success Saved lockfile.
Done in 34.51s.
Installed packages for tooling via yarn.
Successfully initialized git.
Project 'nx-test-bug' successfully created.

Hope this help

vsavkin commented 6 years ago

Both the repos work for me.

Both the repos have no apps generated. If I generate an app, the tests run.

I think the issue you are seeing has been fixed here: https://github.com/nrwl/nx/commit/a7f06edf5914212bcefbafb1198d262e9692cfdb

sandangel commented 6 years ago

@vsavkin Sorry for misunderstood. I thought the generated file should be test.ts, not test.js, and the issue is nx/schematics should generate test.ts like angular/cli. Then when I create a new project and test.js still appears, I thought the issue was not solved.

Nxt3 commented 6 years ago

This issue is still present. When generating new apps, it generates test.js instead of test.ts. Manually fixing this is a pain.

vsavkin commented 6 years ago
Nxt3 commented 6 years ago

@vsavkin I know it is supposed to. But why not do test.ts? It's what Angular CLI uses by default now so I'd expect nrwl do the same.

Edit: The problem is that when generating a new app inside a nrwl workspace, .angular-cli.json references test.js. However, we're using test.ts. If I change the name to test.js so that I don't have to change the .angular-cli.json every time--you get an error:

File '/Users/user/code/repo/test.js' has unsupported extension. The only supported extensions are '.ts', '.tsx', '.d.ts'.

I strongly believe nrwl should be generating and referencing test.ts since that's what @angular/cli does by default now.

vsavkin commented 6 years ago

However, we're using test.ts. If I change the name to test.js so that I don't have to change the .angular-cli.json every time--you get an error:

If you are moving your existing project into the workspace, by making it an app, you should do without test.ts because it is shared between all the apps. So your existing project and the workspace won't have the same test.ts.

I strongly believe nrwl should be generating and referencing test.ts since that's what @angular/cli does by default now.

Agree. We generate test.js because we had an issue with an earlier version of the CLI. The issue might be fixed right now. If you submit a PR changing the application schematic to generate test.ts, I'll merge it.

vsavkin commented 6 years ago

Closing this issue because we intentionally generate test.js file instead of test.ts.

If someone opens a PR changing to test.ts, I'll merge it :)

github-actions[bot] commented 1 year ago

This issue has been closed for more than 30 days. If this issue is still occuring, please open a new issue with more recent context.