Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用angular 2 CLI,如何使用绝对路径以避免';您不必从';使用导入{..}//共享/东西';_Javascript_Angularjs_Angular_Angular Cli - Fatal编程技术网

Javascript 使用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} 谢谢我遇到了同样的问题,通过使用引用共享文件夹的符号链接解

我使用angular 2 CLI创建了我的项目。然而,我想知道我如何才能停止使用疯狂的进口,如

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来澄清桶的用法(参见答案的编辑)。