我已经按照起始指南进行了扩展,并稍微扩展了以前的角度2版本。我已更新了我的修订版并相应更改了所有内容。 当我运行Web服务器时,我现在收到错误404 for traceur ...
相关文件:
的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';
答案 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并导致这个可怕的错误。我在这里打开了一个问题:
答案 8 :(得分:2)
由于版本更改,它会引发404错误。 要解决此问题,我们需要在systemjs.config.js文件中进行以下修改:
将npm:angular-in-memory-web-api/
替换为npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js
。在地图中。
删除软件包中的以下代码:
'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)
我有这个确切的问题,通过更正文件名来解决。