Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular gives @angular/core 404 not found error when using directives

When I add in this line of code into my @Component:

directives: [HeroDetailComponent]

The code breaks, and gives me this error:

GET http://localhost:3000/@angular/core 404 (Not Found)

These are the scripts in my index.html:

<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>
<script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>   

<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>

If I'm missing out any information for diagnosing this issue, please tell me and I'll include it here.

like image 751
Lucas Avatar asked May 04 '16 03:05

Lucas


2 Answers

If you want to use the RC version of Angular2, you need to configure SystemJS this way:

var packages = {
  'app': { main: 'main.js',  defaultExtension: 'js' },
  'rxjs': { defaultExtension: 'js' },
  'angular2-in-memory-web-api': { defaultExtension: 'js' },
};

var packageNames = [
  '@angular/common',
  '@angular/compiler',
  '@angular/core', // <--------
  '@angular/http',
  '@angular/platform-browser',
  '@angular/platform-browser-dynamic',
  '@angular/router',
  '@angular/router-deprecated',
  '@angular/testing',
  '@angular/upgrade',
];

packageNames.forEach(function(pkgName) {
  packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
});

var config = {
  map: map,
  packages: packages
}

System.config(config);

If you want to use beta versions, after having included the node_modules/angular2/bundles/angular2.dev.js file in a script element, import this package instead:

import {Component, Directive, ...} from 'angular2/core';
like image 59
Thierry Templier Avatar answered Oct 16 '22 09:10

Thierry Templier


I had the same error when I tried to follow the Angular 2 tutorial at https://angular.io/docs/ts/latest/tutorial/toh-pt3.html.

But I find out the problem is that I had a typo in app.component.ts, the first line should be:

import { Component } from '@angular/core';

But I wrote a capital letter of 'core':

import { Component } from '@angular/Core'

So my advice is to make sure you write the right name of the resource before try to revise SystemJS.

like image 26
Rafy Avatar answered Oct 16 '22 09:10

Rafy