1

我刚刚使用 Angular 2 (typescript) 有一段时间了,如果我的问题太无聊了,我很抱歉 :(

我将我的第一个包发布到 npm 如下

项目结构

lib
|--banana
   |--b.js
   |--b.d.ts
|--coconut
   |--c.js
   |--c.d.ts
src
|--banana
   |--b.ts
|--coconut
   |--c.ts
gulpfile.ts
package.json
tsconfig.json
typings.json

包.json

"name": "XXX",
  "main": "lib/",
  "typings": "lib/",
  "files": [
    "lib/"
  ]

tsconfig.json

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "module": "commonjs",
        "declaration": true,
        "outDir": "lib/",
        "types": [
            "core-js"
        ]
    }
}

我成功地将它发布到 npm,然后我在一个 angular-cli 项目中使用它

npm install my_package --save

问题是在消费项目中,我只能通过绝对路径导入我的包的类,即

import {Banana} from './../../node_modules/my_package/lib/banana/b'

我尝试了一些更改发布我的包的方式,但它仍然没有按预期工作。

那么,请帮助我展示我在发布包的方式或消费包的方式中遗漏的要点?

编辑
如果我导入如下:

import {Banana} from 'XXX';

我收到此错误:

ERROR in Error encountered resolving symbol values statically. Could not resolve XXX relative to /Users/john/Documents/workspace/consuming-npm/src/app/app.module.ts., resolving symbol AppModule in /Users/john/Documents/workspace/consuming-npm/src/app/app.module.ts, resolving symbol AppModule in /Users/john/Documents/workspace/consuming-npm/src/app/app.module.ts  

ERROR in ./src/app/app.module.ts
Module build failed: Error: /Users/john/Documents/workspace/consuming-npm/src/app/app.module.ts (18,33): Cannot find module 'XXX'.)

这是[消费-npm]的结构: 在此处输入图像描述

我认为问题在于我发布 npm 包的方式,但仍然不知道它来自哪里:(

4

1 回答 1

2

在你的 package.json 中,更新主脚本:

"main": "lib/banana/b"

然后,您可以使用您在 package.json 中指定的名称导入它(XXX在上面的 youryou 示例代码中)

import {Banana} from "XXX";
于 2017-02-10T17:05:00.250 回答