Angular 角度库作为Web包的依赖项

Angular 角度库作为Web包的依赖项,angular,webpack,Angular,Webpack,我有一个角度组件,我想让它作为依赖项被其他项目导入。由于某些原因,我不能使用npm,我使用git作为私有存储库 目前,我正在使用一个真正的虚拟组件进行一些测试,因此在我开发该组件的项目中,我使用webpack生成js文件,因此我的/dist文件夹有如下内容: dummy-component.js package.json 在dummy-component.js中,我有我的捆绑文件,基本上是 dummy.module.ts /dummy dummy.component.ts dummy.

我有一个角度组件,我想让它作为依赖项被其他项目导入。由于某些原因,我不能使用npm,我使用git作为私有存储库

目前,我正在使用一个真正的虚拟组件进行一些测试,因此在我开发该组件的项目中,我使用webpack生成js文件,因此我的/dist文件夹有如下内容:

dummy-component.js
package.json
在dummy-component.js中,我有我的捆绑文件,基本上是

dummy.module.ts
/dummy
  dummy.component.ts
  dummy.component.scss
  dummy.component.html
因此,这个/dist文件的内容被推送到
虚拟dist
存储库中,并由另一个项目使用

"my-dummy-component": "git+https://.../_git/dummy-dist"
这被很好地导入到my/node_modules文件夹(即js文件和package.json)

然后我尝试在app.module.ts中使用它,如

...
import { DummyModule } from 'my-dummy-component';
...
@NgModule({
  imports: [
    ...
    DummyModule
  ],
...
但当我尝试启动项目时,我从webpack中得到一个错误

ERROR in ./src/app/app.module.ts
(13,37): error TS2307: Cannot find module 'my-dummy-component'.
存在于我的node_modules文件夹中,所以我猜我遗漏了一些其他东西。这是怎么一回事?我尝试在导出模块的/node_模块中使用index.js,但没有成功

有什么想法吗?谢谢

编辑:在阅读了@Pavlo在评论中提供的第一个链接后,我现在也设法生成了定义类型。 现在,my/dist文件夹的内容是

dist/
  dist/
    dummy/
      dummy.component.d.ts
    dummy.module.d.ts
  dummy.bundle.js
  dummy.bundle.js.map
  package.json
在我的package.json中

    "name": "dummy",
    "version": "0.0.0",
    "main": "dummy.bundle.js",
    "module": "dummy.bundle.js",
    "types": "dummy.module.d.ts",
    "peerDependencies": {
      ..
    },
    "private": true
  }
现在webpack工作正常,但当我加载页面时,控制台中出现了一个错误

Unexpected value 'undefined' imported by the module 'AppModule'
    at Error.ZoneAwareError

创建一个可重用的Angular库并不像使用Webpack构建Angular应用程序那样简单。您需要以一种特殊的方式构建它,以保留ES2015模块(导入/导出语句)、创建TypeScript定义文件并对组件进行AOT编译

请参阅以下指南,了解如何准确执行此操作的详细信息:


此外,您还可以使用模板开始基本设置,如下图所示:

创建可重用的Angle library并不像使用Webpack构建Angle应用程序那样简单。您需要以一种特殊的方式构建它,以保留ES2015模块(导入/导出语句)、创建TypeScript定义文件并对组件进行AOT编译

请参阅以下指南,了解如何准确执行此操作的详细信息:


此外,您还可以使用模板开始基本设置,如下图所示:

您可以将您的
'my-dummy-component'
上传到某个地方吗?打包它的网页包配置是什么?你能把你的
'my-dummy-component'
上传到什么地方吗?包装它的网页包配置是什么?谢谢@Pavlo,我知道它不一样。我在使用ngs时发现我需要某种绑定器来处理外部html模板和SCS文件,所以我使用了webpack,但这种方式把一切都搞砸了,因为它只生成一个绑定器,没有metadata.json或任何东西tanks@Pavlo,我知道这不一样。我在使用ngs的时候才意识到我需要某种绑定器来处理外部html模板和scss文件,所以我使用了webpack,但这种方式把一切都搞糟了,因为它只生成一个绑定器,没有metadata.json或其他任何东西