Installations
npm install @stencil/vue-output-target
Releases
@stencil/angular-output-target@0.9.0
Published on 28 Aug 2024
v0.7.1
Published on 28 Aug 2024
@stencil/react-output-target@0.7.0
Published on 27 Aug 2024
@stencil/react-output-target@0.6.0
Published on 15 Aug 2024
@stencil/vue-output-target@0.8.9
Published on 05 Aug 2024
@stencil/vue-output-target@0.8.8
Published on 26 Mar 2024
Developer
Developer Guide
Module System
CommonJS, ESM
Min. Node Version
Typescript Support
Yes
Node Version
20.10.0
NPM Version
10.2.3
Statistics
250 Stars
458 Commits
118 Forks
14 Watching
44 Branches
54 Contributors
Updated on 26 Nov 2024
Languages
TypeScript (96.96%)
Vue (1.23%)
JavaScript (0.84%)
CSS (0.62%)
HTML (0.35%)
Total Downloads
Cumulative downloads
Total Downloads
922,435
Last day
39.1%
1,633
Compared to previous day
Last week
19.5%
8,917
Compared to previous week
Last month
-8%
34,606
Compared to previous month
Last year
15.6%
443,315
Compared to previous year
Daily Downloads
Weekly Downloads
Monthly Downloads
Yearly Downloads
Peer Dependencies
2
Project | Package | Version | Documentation |
---|---|---|---|
React Output Target | @stencil/react-output-target | README | |
Angular Output Target | @stencil/angular-output-target | README | |
Vue Output Target | @stencil/vue-output-target | README |
Introduction
Integrating web components into existing framework applications can be difficult at times. More about this can be read at https://custom-elements-everywhere.com/. To accommodate the various issues, the Stencil team has created new output target plugins to make the process simpler.
The plugins add additional output targets for each framework binding that is included.
Here is an example project using the plugins for reference: https://github.com/ionic-team/stencil-ds-output-targets/blob/main/packages/example-project/component-library
Detailed information for each output target can be found in each package's README.
Maintenance Status
This project is currently maintained for the purposes of supporting the Ionic Framework. At this time, only new issues & pull requests that support the Ionic Framework will be prioritized.
Local development
This project uses pnpm for package management. You can install it by following the installation instructions.
Requirements
This project requires:
- Node.js v20.10.0 or higher.
- pnpm v9.4.0 or higher
Getting started
To set up this project and prepare the example project to be used in your own projects run the following commands.
1pnpm install 2pnpm build
In order to work on specific output targets, you can use the dev
command, e.g.:
1pnpm run dev.angular # work on @stencil/angular-output-target 2pnpm run dev.react # work on @stencil/react-output-target 3pnpm run dev.vue # work on @stencil/vue-output-target 4pnpm run dev # watches changes on all output targets
Formatting
This project uses Prettier for code formatting. You can run the following command to format the code:
1pnpm prettier
Testing
We are running a set of unit tests for individual output targets code as well as end-to-end tests using WebdriverIO to verify the output targets actually hydrate and interact in specific project setups. To run tests, you can use the following commands:
1pnpm run test.unit.angular # run unit tests for @stencil/angular-output-target 2pnpm run test.unit.react # run unit tests for @stencil/react-output-target 3pnpm run test.unit.vue # run unit tests for @stencil/vue-output-target 4pnpm run test.unit # run unit tests on all output targets
If you like to run tests on every change, run:
1pnpm run test.watch.angular # watch unit tests for @stencil/angular-output-target 2pnpm run test.watch.react # watch unit tests for @stencil/react-output-target 3pnpm run test.watch.vue # watch unit tests for @stencil/vue-output-target 4pnpm run test.watch # watch unit tests on all output targets
In order to run all tests including the end-to-end tests, run:
1pnpm run test 2 3# run end-to-end tests for specific frameworks 4pnpm run test.e2e.nuxt 5pnpm run test.e2e.next 6pnpm run test.e2e.vue 7pnpm run test.e2e.react
Project Structure
This project is structured as following:
.
├── ...
├── example-project # set of example projects we use for testing output targets
│ ├── component-library # a Stencil projects that exports components
│ ├── component-library-angular # an example of an Angular project that consumes Stencil components
│ ├── component-library-react # an example React + Vite project that uses Stencil components
│ ├── component-library-vue # a simple Vue wrapper packages that exports Stencil components with utilities
│ ├── next-app # a Next.js application for testing Stencils server side rendering capabilities in React
│ ├── nuxt-app # a Nuxt application for testing Stencils server side rendering capabilities in Vue
│ └── vue-app # a Vue + Vite example application for testing our Vue output target
├── packages # Stencil Output target packages
│ ├── angular # package that publishes the `@stencil/angular-output-target`
│ ├── react # package that publishes the `@stencil/react-output-target`
│ └── vue # package that publishes the `@stencil/vue-output-target`
└── ...
Deploying
There is a manual workflow task called "Production Release" within the GitHub Actions workflows directory. We currently do not release all packages that have been changed at once. You will need to deploy each package (vue, react, angular) individually.
You'll need to fill out a few bits of information when you submit the deploy workflow:
- Which package should be published (Currently
vue
,react
, orangular
). - What version should be published.
- What npm tag it should be published under (
next
orlatest
) - Any preid, like
alpha
orrc
No vulnerabilities found.
Reason
30 commit(s) and 24 issue activity found in the last 90 days -- score normalized to 10
Reason
no dangerous workflow patterns detected
Reason
no binaries found in the repo
Reason
all dependencies are pinned
Details
- Info: 8 out of 8 GitHub-owned GitHubAction dependencies pinned
- Info: 4 out of 4 third-party GitHubAction dependencies pinned
Reason
license file detected
Details
- Info: project has a license file: LICENSE:0
- Info: FSF or OSI recognized license: MIT License: LICENSE:0
Reason
security policy file detected
Details
- Info: security policy file detected: github.com/ionic-team/.github/SECURITY.md:1
- Info: Found linked content: github.com/ionic-team/.github/SECURITY.md:1
- Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/ionic-team/.github/SECURITY.md:1
- Info: Found text in security policy: github.com/ionic-team/.github/SECURITY.md:1
Reason
Found 7/10 approved changesets -- score normalized to 7
Reason
4 existing vulnerabilities detected
Details
- Warn: Project is vulnerable to: GHSA-c75v-2vq8-878f
- Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg
- Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv
- Warn: Project is vulnerable to: GHSA-g3ch-rx76-35fx
Reason
detected GitHub workflow tokens with excessive permissions
Details
- Warn: no topLevel permission defined: .github/workflows/ci.yml:1
- Warn: no topLevel permission defined: .github/workflows/dev-build.yml:1
- Warn: no topLevel permission defined: .github/workflows/format.yml:1
- Warn: no topLevel permission defined: .github/workflows/prod-build.yml:1
- Info: no jobLevel write permissions found
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
project is not fuzzed
Details
- Warn: no fuzzer integrations found
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
- Warn: 0 commits out of 27 are checked with a SAST tool
Score
6.5
/10
Last Scanned on 2024-11-25
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More