我只是运行命令:
$ npx create-stencil ionic-pwa
Ionic 4 PWA
目录中具有以下目录结构:
src
:
.
âââ assets
â  âââ icon
â  âââ favicon.ico
â  âââ icon.png
âââ components
â  âââ app-home
â  â  âââ app-home.css
â  â  âââ app-home.spec.ts
â  â  âââ app-home.tsx
â  âââ app-profile
â  â  âââ app-profile.css
â  â  âââ app-profile.spec.ts
â  â  âââ app-profile.tsx
â  âââ my-app
â  âââ my-app.css
â  âââ my-app.spec.ts
â  âââ my-app.tsx
âââ components.d.ts
âââ global
â  âââ app.css
â  âââ app.ts
âââ helpers
â  âââ utils.ts
âââ index.html
âââ manifest.json
âââ sw.js
然后我想创建一个带有html标记的自定义组件:
comp-workspace
comp-workspace.js
HTML
/
Javascript
不使用任何Javascript框架的页面。
这里有一些事情需要考虑:
-
组件工作区
comp-gallery
comp-artboard
,
comp-text-editor
,
comp-layer-stack
-
Ionic
组件。
请看下图:
以下是添加自定义组件后的目录结构:
以及它的依赖关系。
.
âââ assets
â  âââ icon
â  âââ favicon.ico
â  âââ icon.png
âââ components
â  âââ app-home
â  â  âââ app-home.css
â  â  âââ app-home.spec.ts
â  â  âââ app-home.tsx
â  âââ app-profile
â  â  âââ app-profile.css
â  â  âââ app-profile.spec.ts
â  â  âââ app-profile.tsx
â  âââ comp-workspace
â  â  âââ comp-workspace.css
â  â  âââ comp-workspace.spec.ts
â  â  âââ comp-workspace.tsx
â  âââ comp-gallery
â  â  âââ comp-gallery.css
â  â  âââ comp-gallery.spec.ts
â  â  âââ comp-gallery.tsx
â  âââ comp-artboard
â  â  âââ comp-artboard.css
â  â  âââ comp-artboard.spec.ts
â  â  âââ comp-artboard.tsx
â  âââ comp-text-editor
â  â  âââ comp-text-editor.css
â  â  âââ comp-text-editor.spec.ts
â  â  âââ comp-text-editor.tsx
â  âââ comp-layer-stack
â  â  âââ comp-layer-stack.css
â  â  âââ comp-layer-stack.spec.ts
â  â  âââ comp-layer-stack.tsx
â  âââ my-app
â  âââ my-app.css
â  âââ my-app.spec.ts
â  âââ my-app.tsx
âââ components.d.ts
âââ global
â  âââ app.css
â  âââ app.ts
âââ helpers
â  âââ utils.ts
âââ index.html
âââ manifest.json
âââ sw.js
然后,我想以类似以下方式使用自定义组件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Title of the document</title>
<script src="..."></script>
<script src="https://my.repository.com/components/comp-workspace.js"></script>
</head>
<body>
<comp-workspace attr1="..." attr2="..." attr3="..." ...></comp-workspace>
</body>
</html>
如果我运行
build
控制台上的命令我得到以下输出:
$ npm run build
> @ionic/pwa-toolkit@0.0.1 build D:\stencil-lab
> stencil build
[25:03.5] @stencil/core v0.12.1
[25:03.9] build, app, prod mode, started ...
[25:06.3] transpile started ...
[25:12.3] transpile finished in 6.02 s
[25:15.5] module map started ...
[25:15.5] generate styles started ...
[25:26.0] compile global style start ...
[25:28.0] compile global style finish in 2.03 s
[25:28.0] generate styles finished in 12.50 s
[25:28.0] module map finished in 12.50 s
[25:28.0] generate bundles started ...
[25:28.2] generate bundles finished in 237 ms
[25:28.2] generate app files started ...
[25:29.6] generate app files finished in 1.36 s
[26:03.4] inject manifest into service worker started ...
[26:08.5] inject manifest into service worker finished in 5.04 s
[ WARN ] build warn
Generated an empty bundle
[26:08.5] build finished in 64.58 s
我还得到一个新目录:
www
.
âââ assets
â  âââ icon
â  âââ favicon.ico
â  âââ icon.png
âââ build
â  âââ app
â  â  âââ 3hkybzk1.es5.js
â  â  âââ 3hkybzk1.js
â  â  âââ 3hkybzk1.sc.es5.js
â  â  âââ 3hkybzk1.sc.js
â  â  âââ 4jakisfl.es5.js
â  â  âââ 4jakisfl.js
â  â  âââ 4jakisfl.sc.es5.js
â  â  âââ 4jakisfl.sc.js
â  â  âââ aa33sq6q.es5.js
â  â  âââ aa33sq6q.js
â  â  âââ [... AND MANY MORE FILES]
â  â  âââ svg
â  â    âââ index.js
â  â    âââ ios-add-circle-outline.svg
â  â    âââ ios-add-circle.svg
â  â    âââ ios-add.svg
â  â    âââ ios-airplane.svg
â  â    âââ ios-alarm.svg
â  â    âââ ios-albums.svg
â  â    âââ ios-alert.svg
â  â    âââ ios-american-football.svg
â  â    âââ ios-analytics.svg
â  â    âââ [... AND MANY MORE FILES]
â  âââ app.css
â  âââ app.js
âââ index.html
âââ manifest.json
âââ sw.js
âââ workbox-v3.4.1
âââ workbox-background-sync.dev.js
âââ workbox-background-sync.dev.js.map
âââ workbox-background-sync.prod.js
âââ workbox-background-sync.prod.js.map
âââ workbox-broadcast-cache-update.dev.js
âââ workbox-broadcast-cache-update.dev.js.map
âââ workbox-broadcast-cache-update.prod.js
âââ workbox-broadcast-cache-update.prod.js.map
âââ workbox-cache-expiration.dev.js
âââ workbox-cache-expiration.dev.js.map
âââ [... AND MANY MORE FILES]
6 directories, 832 files
但正如您所看到的,我没有一个实际的javascript捆绑包文件可以用来将我的自定义组件插入到任何服务器上
HTML/Javascript
第页。
我该怎么做
建造
只是我的自定义组件
离子型4 PWA
谢谢!
[编辑1]
亚历山大·斯塔罗斯基
你可以考虑使用
到
构建可以绑定和使用的单个web组件
这是一个很好的观点,亚历山大,实际上这是我最初的想法,但我发现一些问题,我在这个论坛上发布:
https://forum.ionicframework.com/t/ion-label-component-inside-the-stencil-component-starter-not-getting-rendered/139763/3#post_4
亚伦桑德斯
2018-08-28
):
看来这个项目(
模具组件启动器
)没有
Ionic 4
在默认情况下。
然后他建议我用
Ionic PWA Starter Kit
这就是我在这里要做的。这样做一切似乎都很好(所有
离子型
这里有一个同样的讨论在平行
堆栈溢出
:
ion-label component inside the stencil-component-starter not getting rendered