Angular 2 - 404 traceur未找到

时间:2016-05-04 08:38:17

标签: angular http-status-code-404

我已经按照起始指南进行了扩展,并稍微扩展了以前的角度2版本。我已更新了我的修订版并相应更改了所有内容。 当我运行Web服务器时,我现在收到错误404 for traceur ... Error 404 for traceur

这是我的项目结构: Project structure

相关文件:

的index.html:

(function(global) {

    // map tells the System loader where to look for things
    var map = {
        'app':                        'app', // 'dist',
        'rxjs':                       'node_modules/rxjs',
        'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
        '@angular':                   'node_modules/@angular',
    };

    // packages tells the System loader how to load when no filename and/or no extension
    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',
    ];

    // add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
    packageNames.forEach(function(pkgName) {
        packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
    });

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

    // filterSystemConfig - index.html's chance to modify config before we register it.
    if (global.filterSystemConfig) { global.filterSystemConfig(config); }

    System.config(config);

})(this);

systemjs.config.js

    {
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}

tsconfig.json

select Agent_ID, date_format(date(Start_Time),'%H:%i:%S'),
   SUM(CASE WHEN Break_Reason = 'teabreak' THEN login.Time ELSE NULL END) TeaBreak
from login 
where Agent_ID = '3331'
and date(start_time) = '2016-04-02';

可能的问题可能是enter image description here这抵制了我的进步。

17 个答案:

答案 0 :(得分:30)

我在关注Angular Heroes教程时遇到了这个问题。它是由systemjs.config.js文件中的angular-in-memory-web-api导入的无效位置引起的。正确的位置应该是:

'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'

并删除packages.angular-in-memory-web-api

请参阅https://github.com/angular/quickstart/commit/541bdc5f634e1142860c56cace247234edfaf74b

答案 1 :(得分:23)

如果它有助于任何人,我曾经遇到过这个问题,这是由多行注释造成的(例如,参见Picci的回答here)。

答案 2 :(得分:22)

问题是我的一项服务无效。我已经将构造函数添加为最后一种用于演示目的的方法,但它拒绝加载。

因此,对于那些遇到此错误的人,请打开错误并检查引用的文件是否有错误。问题不在于他没有找到traceur,而是因为他无法加载文件。

答案 3 :(得分:6)

从RC4迁移到RC6时遇到同样的错误。

对于我的项目,我不得不更新systemjs.config.js文件。我停止引用root index.js文件,并开始引用/ bundles中的core.umd.js文件。

在此之后:example

答案 4 :(得分:4)

在我的情况下我在traceur中甚至没有node_modules作为依赖并且应用程序工作正常但突然开始要求添加了一个不需要traceur的库后traceur

解决方案是在bundles中引用src个文件夹中新添加的库而不是system.config.js(或默认文件夹),并指定文件的.umd.js版本。另外,我必须从main部分删除packages条目。

背后的原因是从umd文件夹加载bundle模块不会触发traceur转换器,因为它假定库模块已经是正确的格式。 否则,它可能会假设代码是用es2015编写的,并且需要转换,因此它会调用traceur

在尝试从完全可运行的"英雄之旅"连接到traceur实例后,我遇到了这个Firebase问题。 app AngularFire2的帮助。我在这里尝试了所有的答案,但没有一个帮助,所以我用谷歌搜索,直到我找到这个github issue

答案 5 :(得分:3)

在asp.net mvc上运行angular4 quickstart项目时出现此错误。 在tsconfig.json中将“es2015”更改为“commonjs”解决了我的问题。

答案 6 :(得分:3)

我花了3个小时试图弄清楚我的代码中出错了什么,我能够发现"评论我的代码的一部分引起了问题"。

请务必确保您没有在组件范围之外评论任何代码

答案 7 :(得分:2)

问题出在system.js中我认为:

有一个正则表达式,用于检测import语句:

var esmRegEx = /(^\s*|[}\);\n]\s*)(import\s*(['"]|(\*\s+as\s+)?[^"'\(\)\n;]+\s*from\s*['"]|\{)|export\s+\*\s+from\s+["']|export\s*(\{|default|function|class|var|const|let|async\s+function))/; 

这个正则表达式将检测多行注释中的import-statements并导致这个可怕的错误。我在这里打开了一个问题:

https://github.com/systemjs/systemjs/issues/1408

答案 8 :(得分:2)

由于版本更改,它会引发404错误。 要解决此问题,我们需要在systemjs.config.js文件中进行以下修改:

  1. npm:angular-in-memory-web-api/替换为npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js。在地图中。

  2. 删除软件包中的以下代码:

    'angular-in-memory-web-api': {
        main: './index.js',
        defaultExtension: 'js'
    }
    

答案 9 :(得分:2)

@ Coquelicot给出了类似的答案,但我想我无论如何都要回答,因为我有更多的细节。我通常不会在使用多行注释时遇到任何问题,但是如果我将一个import语句放在其中,那么我会得到这个确切的错误。简单地在import语句周围加上引号就可以解决我的错误。很奇怪。

答案 10 :(得分:1)

我认为你应该做的第一件事就是检查你是否已经下载了这个问题!我遇到了这个问题,这让我觉得有几个小时的时间来搜索。但是我发现我的node_modules中没有任何痕迹。目录。所以我尝试npm install traceur安装traceur。然后更新systemjs.config.js,添加类似'traceur':'npm:traceur/bin/traceur.js'的行。幸运的是,这个问题已经解决了。希望这可以帮到你!

答案 11 :(得分:1)

此错误背后有多种原因,

1)有时在app.component.ts文件上提到的评论
2)指向不正确的umd文件
3)如果您使用的是ts(Typescript)版本,请在config.js文件中提及如下的transpiler选项,或者使用transpiler将所有.ts文件编译为.js文件,然后在代码中引用.js文件:

(function (global) {
    System.config({
        transpiler: 'ts',
        typescriptOptions: {
          tsconfig: true
        },
        paths: {
            // paths serve as alias
            'npm:': 'node_modules/'
        },
        // map tells the System loader where to look for things
        map: {
            // our app is within the app folder
            app: 'app',
            // angular bundles
            '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
            '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
            '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
            '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
            '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
            '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
            '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
            '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
            // other libraries
            'rxjs': 'npm:rxjs',
            'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
            'angular2' : ''
        },
        // packages tells the System loader how to load when no filename and/or no extension
        packages: {
            app: {
                main: './main',
                defaultExtension: 'ts'
            },
            rxjs: {
                defaultExtension: 'js'
            },
            'angular-in-memory-web-api': {
                main: './index.js',
                defaultExtension: 'js'
            }
        }
    });
})(this);

答案 12 :(得分:1)

我遇到了同样的问题,无法加载我的某个文件。我打开了文件,一切都正确。

问题在于我在同一个文件中注释了一个片段。代码段包含此关键字" 导出类"。即使它已被注释掉,它也是由Angular解析的。

确保您没有" 导出课程"评论中的关键字,并删除临时注释的代码,以检查它是否有效。

答案 13 :(得分:1)

我有同样的问题,在我搜索了这个案例后,我通过更改解决了它: 核心问题:主要:' index.js'必须更改为main:' bundles / core.umd.js'

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

=> main:' bundles / core.umd.js'

packages: {
    '@angular/core': {
        main: 'bundles/core.umd.js'
    },
    '@angular/compiler': {
        main: 'bundles/compiler.umd.js'
    },
    '@angular/common': {
        main: 'bundles/common.umd.js'
    },
    '@angular/platform-browser': {
        main: 'bundles/platform-browser.umd.js'
    },
    '@angular/platform-browser-dynamic': {
        main: 'bundles/platform-browser-dynamic.umd.js'
    },
    '@angular/http': {
        main: 'bundles/http.umd.js'
    }
}

注意:我的地图:

map: {
    '@angular': 'node_modules/@angular',
    'rxjs': 'node_modules/rxjs'
}

答案 14 :(得分:0)

对我来说,发生的事情是一个同事删除了一个TypeScript文件,这意味着我不再需要一个旧的* .js文件(因为我们的源代码控制忽略了这些文件)。如果traceur错误引用了您不需要的* .js文件,请删除该文件。

答案 15 :(得分:0)

首先,您应该使用

编译TypeScript文件
$ tsc 

命令。如果您在节点环境之外运行应用程序,则应手动编译TypeScript文件。

同时检查tsconfig.json - 如果脚本版本设置为Angular 2.0的ES6

答案 16 :(得分:-1)

我有这个确切的问题,通过更正文件名来解决。