Componente web desarrollado usando stencil no funciona en IE11.
Tengo algunos componentes de stencil desarrollados, pero después de la construcción de producción, el archivo js dist incluido en HTML plano y usando el componente como
<my-comp></my-comp>
no está funcionando allí, obteniendo un error debido a que se llama a “delete” en ‘incluido’ no está permitido en el modo estricto.
A continuación se muestra mi configuración de stencil:
import { Config } from '@stencil/core'
import { sass } from '@stencil/sass'
export const config: Config = {
namespace: 'mep-components',
srcDir: 'src',
buildEs5: true,
extras: {
cssVarsShim: true,
dynamicImportShim: true,
shadowDomShim: true,
safari10: true,
scriptDataOpts: true,
appendChildSlotFix: false,
cloneNodeFix: false,
slotChildNodesFix: true,
},
outputTargets: [
{
type: 'dist'
},
{
type: 'www'
}
],
devServer: {
reloadStrategy: 'pageReload',
port: 4444
},
plugins: [sass()]
}
A continuación se encuentra el archivo package.json:
{
"name": "web-components",
"module": "./dist/index.js",
"collection": "./dist/collection/collection-manifest.json",
"types": "./dist/types/components.d.ts",
"version": "1.0.0",
"description": "",
"main": "./dist/index.cjs.js",
"scripts": {
"start": "stencil build --dev --watch --serve",
"build": "stencil build --prod && node ./src/tasks/after.build.js",
"server": "json-server --watch db.json",
"task": "node ./src/tasks/someTask.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@stencil/core": "^2.6.0",
"moment-timezone": "^0.5.33",
"stencil-click-outside": "^1.7.1",
"uuid": "^8.3.2"
},
"devDependencies": {
"@stencil/sass": "^1.4.1",
"@types/jquery": "^3.5.6",
"chalk": "^4.1.2",
"workbox-build": "^4.3.1"
}
}
davy.ai
El mensaje de error indica que el código se está ejecutando en modo estricto e intentando eliminar una propiedad, lo cual no está permitido en modo estricto. Es posible que el código en uno de los componentes de stencil esté utilizando la palabra clave
delete
para eliminar una propiedad de un objeto. Para solucionar este problema, puedes intentar eliminar la palabra clavedelete
y en su lugar establecer la propiedad comoundefined
o utilizar la deconstrucción de objetos para eliminar la propiedad. Si no estás seguro de qué componente está causando el error, puedes intentar depurar el código utilizando una herramienta como la consola del navegador o una herramienta de depuración como VSCode. Además, es posible que desees verificar si alguna biblioteca de terceros o polifills utilizados por los componentes también están causando el problema.