Angular 角度库作为Web包的依赖项
我有一个角度组件,我想让它作为依赖项被其他项目导入。由于某些原因,我不能使用npm,我使用git作为私有存储库 目前,我正在使用一个真正的虚拟组件进行一些测试,因此在我开发该组件的项目中,我使用webpack生成js文件,因此我的/dist文件夹有如下内容: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.
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或其他任何东西