如果我的导入语句中没有 .js,Angular 2 会抛出错误
Posted
技术标签:
【中文标题】如果我的导入语句中没有 .js,Angular 2 会抛出错误【英文标题】:Angular 2 is throwing and error if I don't have .js in my import statements 【发布时间】:2016-05-06 10:06:15 【问题描述】:我按照 angular.io 的 5 分钟快速入门中的说明进行操作,一切正常。我使用时不必声明.js
import Component from 'angular2/core';
然后我开始使用 templateUrl 来加载其他组件
import NavMenuComponent from '../nav/navMenu';
@Component (
selector: 'my-app',
templateUrl: 'main.html',
directives: [NavMenuComponent]
)
export class AppComponent
当我运行代码时,我收到一条错误消息,提示找不到 localhost:300/src/nav/navMenu
但是如果我在末尾添加一个 .js
import NavMenuComponent from '../nav/navMenu.js';
它工作正常。我已经将 index.html 设置为..
<script>
System.config(
packages:
app:
format: 'register',
defaultExtension: 'js'
);
</script>
难道不应该这样我就不必再在导入时使用 .js 扩展名了吗?提前致谢。
【问题讨论】:
要么在系统配置中更改您的包,要么将src
文件夹更改为app
@Langley,我不关注。 angular.io 没有系统配置文件。请您更具体地说明一下修复方法。
不是 config.js
文件,您在代码中拥有的 System.config( packages: app:
部分。
您的 System.config
指定在 app
包下的内容上使用默认扩展名 js
,但就我所见,您的组件在 src
下而不是 app
下: localhost:300/src/nav/navMenu
这有意义吗?
我想是的。所以我必须将 app 更改为 src 或创建一个带有 defaultExtension 的 src?对吗?
【参考方案1】:
解决方案正是上面@Langely 发布的。一旦我添加了必要的文件夹,它就可以工作了。最后,我把所有东西都放在了一个可以处理所有事情的伞下。
app
-- controllers
-- file.ts
【讨论】:
以上是关于如果我的导入语句中没有 .js,Angular 2 会抛出错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Rollup for Angular 2 的 AoT 编译器并导入 Moment.js
Angular js 2 'node_modules/rxjs/Observable"' 没有导出的成员 'Observable'。导入 Observable
从 Karma 覆盖率报告中排除 angular.js、angular-ui-router.js、angular-mocks.js 等导入文件