Javascript 使用angular 2 CLI,如何使用绝对路径以避免';您不必从';使用导入{..}//共享/东西';
我使用angular 2 CLI创建了我的项目。然而,我想知道我如何才能停止使用疯狂的进口,如Javascript 使用angular 2 CLI,如何使用绝对路径以避免';您不必从';使用导入{..}//共享/东西';,javascript,angularjs,angular,angular-cli,Javascript,Angularjs,Angular,Angular Cli,我使用angular 2 CLI创建了我的项目。然而,我想知道我如何才能停止使用疯狂的进口,如 import { SomeSharedComponent } from '../../../shared/some-shared-component'; 我正在使用angular cli为我生成的内容。那么,有没有可能使用类似于 从'app/shared/components/some component'导入{SomeComponent} 谢谢我遇到了同样的问题,通过使用引用共享文件夹的符号链接解
import { SomeSharedComponent } from '../../../shared/some-shared-component';
我正在使用angular cli为我生成的内容。那么,有没有可能使用类似于
从'app/shared/components/some component'导入{SomeComponent}
谢谢我遇到了同样的问题,通过使用引用共享文件夹的符号链接解决了这个问题。您还应该将其添加到system-config.js
import { SomeSharedComponent } from './shared/';
const barrels: string[] = [
(...)
// App specific barrels.
'app',
'app/shared',
/** @cli-barrel */
];
在system-config.js中使用以下声明
import { SomeSharedComponent } from './shared/';
const barrels: string[] = [
(...)
// App specific barrels.
'app',
'app/shared',
/** @cli-barrel */
];
我对更清洁的解决方案感兴趣
编辑:
您还应该在共享文件夹中包含index.ts,其中包含以下内容
export * from './some-shared-component';
然后,您可以使用import语句而不使用组件的名称
import SomeSharedComponent from ''../../../shared/'
但是,它仍然需要相对路径部分
我已经在Angular2 hero教程中做了一个解释,以澄清用法。请特别参阅以下文件
app/relative/hero-relative.component.ts
app/shared/my-shared.component.ts
app/hero-search.component.ts
你应该看看这本关于Angular2风格指南的书。这也可能很有趣
我认为对于一个完整的解决方案(没有相对路径),我们必须等到GitHub中所述的Angular CLI采用webpack module manager。A已经可用。最好的方法是使用TypeScript v2.0或更新版本(仍处于测试版)。原因是它给了你使用的能力
这将允许您定义一个名为
app shared
的路径映射,然后使用该路径映射指向所需的共享组件:app shared/some shared component
我相信TS工具(IDE)不会喜欢此解决方案我在那里添加了该组件,但问题是,我在一个组件中有两个级别,该组件对于特定功能是唯一的。从这里,我想从src/app/shared导入一些东西。所以基本上,我在src/一些特性/共享/组件/一些哑组件中。从这里,我想导入src/app/shared中的内容/components@NicolasHenneaux我觉得很有趣,Intellij可以遍历这些路径,通过系统配置找到导入。。。cool@NicolasHenneaux你能告诉我桶是怎么工作的吗?我也有这样的桶。对于exmaple,我想使用的共享组件在桶中作为app/shared/components/list item
,但是如果我从'app/shared/components/list item'导入{ListItemComponent},它会说它找不到该模块。我做了一个Plunker来澄清桶的用法(参见答案的编辑)。