如何在 WebStorm 中发布可自动导入的 npm 模块?

How to publish a npm module that can be auto import in WebStorm?

我尝试发布一个简单的模块,如下所示:

文件列表是:

|--[src]
|    |--[share]
|          |--share.moduel.ts
|          |--index.ts
|
|
|--package.json
|--index.ts

package.json

{
  "name": "my-common",
  "version": "1.0.0",
  "description": "",
  "main": "index.ts",
  "typings": "index.ts",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

index.ts

export { ShareModule } from './src/share/index';

src/share.module.ts

import {NgModule} from "@angular/core";
import {CommonModule} from "@angular/common";
import {FormsModule} from "@angular/forms";

@NgModule({
  imports: [
    CommonModule,
    FormsModule
  ],
  declarations: [],
  exports: [CommonModule,FormsModule]
})
export class ShareModule { }

src/index.ts

export { ShareModule } from './share.module';

发布 npm 模块后,然后 npm install my-common,我尝试在代码 'ShareModule' 上按 Alt + Enter 以自动组织导入声明,但它不显示选项卡“Add import statement”,其工作方式类似于 Angular2 HttpModulem、FormModule 等

那么我怎样才能使自己的模块像其他 Angular2 的官方模块一样在 WebStorm 中通过按键 Alt + Enter 自动导入?我有没有漏掉一些关键点?

终于,我找到了让它工作的方法。

第一步 在您的 **/src/** 文件夹中创建两个文件,如下所示:

index.d.ts index.ts

步骤 2 编辑你的 index.d.ts 你显示导出 class 你想使用 Alt + Enter 导入 WebStrom

例如

export declare class ShareModule {
}

步骤 3 编辑您的 index.ts,如下所示:

export {ShareModule} from './share/share.module';

步骤 4 在 / 文件夹中创建两个文件,如下所示

index.ts:

export * from './src/index';

index.d.ts:

export * from './src/index'

最后,文件应该如下:


    |--[src]
    |    |--[share]
    |    |      |--share.moduel.ts
    |    |--index.ts
    |    |--index.d.ts
    |
    |
    |--package.json
    |--index.ts
    |--index.d.ts

现在您可以通过 Alt + Enter

导入您的 class