ng cli生成模块损坏的组件

时间:2017-03-30 20:26:54

标签: angular module components angular-cli angular4

我第一次使用ng cli。我正在尝试在foo模块下创建一个新模块('foo')和一个新组件('bar')。虽然,我认为我应该在ng cli中做这件事似乎不起作用:

mbp:my-new-app chris$ ng g m foo
installing module
create src/app/foo/foo.module.ts

mbp:my-new-app chris$ ng g c bar -m foo
installing component
create src/app/bar/bar.component.scss
create src/app/bar/bar.component.html
create src/app/bar/bar.component.spec.ts
create src/app/bar/bar.component.ts

EISDIR: illegal operation on a directory, read
Error: EISDIR: illegal operation on a directory, read
at Error (native)
at Object.fs.readSync (fs.js:732:19)
at tryReadSync (fs.js:487:20)
at Object.fs.readFileSync (fs.js:535:19)
at Class.afterInstall (/Users/chris/code/my-new-app/node_modules/@angular/cli/blueprints/component/index.js:209:34)
at tryCatch (/Users/chris/code/my-new-app/node_modules/rsvp/dist/rsvp.js:539:12)
at invokeCallback (/Users/chris/code/my-new-app/node_modules/rsvp/dist/rsvp.js:554:13)
at publish (/Users/chris/code/my-new-app/node_modules/rsvp/dist/rsvp.js:522:7)
at flush (/Users/chris/code/my-new-app/node_modules/rsvp/dist/rsvp.js:2414:5)
at _combinedTickCallback (internal/process/next_tick.js:73:7)

ng cli version:

mbp:my-new-app chris$ ng version
    _                      _                 ____ _     ___
   / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
  / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
 / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
/_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
               |___/
@angular/cli: 1.0.0
node: 6.10.1
os: darwin x64
@angular/common: 4.0.1
@angular/compiler: 4.0.1
@angular/core: 4.0.1
@angular/forms: 4.0.1
@angular/http: 4.0.1
@angular/platform-browser: 4.0.1
@angular/platform-browser-dynamic: 4.0.1
@angular/router: 4.0.1
@angular/cli: 1.0.0
@angular/compiler-cli: 4.0.1

我是否正在使用这个错误?我没有找到有关此功能的文档。

谢谢!

1 个答案:

答案 0 :(得分:2)

而不是运行

ng g c bar -m foo

尝试运行(不使用-m)

ng g c foo/bar

如果你想引用一个应该导出/导入新组件的模块,你应该提供这个模块的相对路径,如:

ng g c bar -m foo/foo.module

在这种情况下, bar 组件将由 foo.module 导入/导出,但位于 src / app 下。

发生了

EASDIR 错误,因为您提供了一个目录( foo )而不是文件( foo / foo.module

作为示例回答here

  

EISDIR意味着操作的目标实际上是一个目录,但目标的预期文件类型不是目录。