Я довольно новичок в Preact & TypeScript и загрузил приложение, используя parcel-preact-typescript-boilerplate
.
Пока все работает нормально, но я понял, что время от времени после перезагрузки я получаю пустую страницу,Это также происходит время от времени при открытии страницы.Под пустой страницей я имею в виду, что мой Hello
компонент не отображается в document.body
.Однако этого не происходит, когда я отключаю кеширование в Google Chrome, это все же происходит, когда я отключаю кеширование в Firefox.
Я думал, что причиной этого могут быть изменения и введение в мой код, но после клонирования parcel-preact-typescript-boilerplate
и просто начав с npm run start
, я получаю такое же странное поведение.
В чем может быть причина этого?
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>PARCEL-PREACT-TYPESCRIPT-BOILERPLATE</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link async rel="stylesheet" href="./src/style.css" />
<script async src="./src/index.tsx"></script>
</head>
<body>
</body>
</html>
index.tsx:
import { h, render } from 'preact';
const Hello = () => (<div><h1 className="hello" >Hello World</h1></div>);
render(<Hello/>, document.body);
package.json:
{
"name": "parcel-preact-typescript-boilerplate",
"version": "1.0.6",
"description": "simple parcel preact typescript project without preact-compat",
"main": "index.html",
"scripts": {
"start": "parcel index.html",
"watch": "parcel watch index.html",
"build": "parcel build index.html",
"rebuild": "npm run clean && npm run build",
"clean": "rimraf dist/ && rimraf .cache"
},
"repository": {
"type": "git",
"url": "git+https://github.com/benevolarX/parcel-preact-typescript-boilerplate.git"
},
"keywords": [
"parcel",
"preact",
"typescript",
"boilerplate",
"project"
],
"author": "benevolar",
"license": "MIT",
"bugs": {
"url": "https://github.com/benevolarX/parcel-preact-typescript-boilerplate/issues"
},
"homepage": "https://github.com/benevolarX/parcel-preact-typescript-boilerplate#readme",
"devDependencies": {
"@babel/core": "^7.2.0",
"@types/node": "^10.12.12",
"babel-preset-preact": "^1.1.0",
"parcel-bundler": "^1.10.3",
"rimraf": "^2.6.2",
"typescript": "^3.2.2"
},
"dependencies": {
"preact": "^8.4.2",
"preact-compat": "^3.18.4"
}
}
tsconfig.json:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"baseUrl": ".",
"checkJs": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"jsx": "react",
"jsxFactory": "h",
"module": "commonjs",
"outDir": "dist",
"paths": {
"~*": ["./src/*"]
},
"pretty": true,
"removeComments": true,
"strict": true,
"target": "esnext",
},
"include": [
"src/**/*"
],
"parcelTsPluginOptions": {
"transpileOnly": false
}
}
edit: Немного поиграв, я понял, что проблема не возникает после сборки всего с помощью parcel и запуска приложения с помощью preact serve dist
/ preact watch dist/index.html
вместо parcel index.html