我刚刚使用Angular 2(打字稿)了一段时间,非常抱歉,如果我的问题是如此noop :(
我将第一个包发布到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
的package.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包的方式,但仍然不知道它来自哪里:(
答案 0 :(得分:1)
在package.json中,更新主脚本:
"main": "lib/banana/b"
然后,您可以使用您在package.json(上面的示例代码中的XXX
)中指定的名称导入它。
import {Banana} from "XXX";