Я пытаюсь настроить базовое приложение реагирования на SSR, используя машинописный текст для внешнего интерфейса и js для сервера.
Основным компонентом приложения является файл .tsx.
Но я сталкиваюсь со следующей ошибкой:
Ошибка: не удается найти модуль '../src/App'
в Function.Module._resolveFilename (внутренний / modules / cjs / loader.js: 581: 15)
В моем файле renderSSR.js я:
Импорт приложения из "../src/App";
(это должен быть импорт ../src/App.tsx)
Если я изменю на стороне сервера все файлы .ts и использую ts-node, все будет работать. Но я не хочу этого делать.
Некоторые важные части моего файла веб-пакета:
config.resolve = {
extensions: [".tsx", ".ts", ".js", ".jsx"]
};
config.module = {
rules: [
// Babel
{
test: /\.(js|jsx)$/,
include: resolvePath("../src"),
loader: "babel-loader",
options: {
cacheDirectory: IS_DEV,
compact: IS_PROD
}
},
// TS
{
test: /\.ts(x?)$/,
loader: "ts-loader",
exclude: /node_modules/
},
Обновление: я могу обойти эту проблему импорта, изменив оператор импорта на:
импорт приложения из "../src/App.tsx";
Однако это приводит к следующей ошибке во вновь импортированном файле App.tsx:
{import * as React из "реакции";
^ SyntaxError: неожиданный токен *
В машинописи то, как вы импортируете React.