Я перевожу реагирующее приложение, чтобы использовать машинопись. Я добавил компонент машинописного текста и импортировал его в другой реагирующий компонент. Приложение компилируется и работает без сбоев. Однако когда я запускаю тесты yarn test
, Mocha не может найти мой компонент машинописи:
Error: Cannot find module './manage_new/TypescriptFile'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/dan/Documents/my-ui/src/ui/main/Modal.jsx:7:1)
at Module._compile (module.js:652:30)
at loader (/home/dan/Documents/my-ui/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .jsx] (/home/dan/Documents/my-ui/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:565:32)...
Ошибка возникает, когда я импортирую компонент машинописи import { TypescriptFile } from './manage_new/TypescriptFile'
. Временное решение для импорта - это импорт с использованием расширения: './manage_new/TypescriptFile.tsx
, которое РАБОТАЕТ. Однако это не идеальный способ. Я хотел, чтобы он работал, используя обычный импорт.
Файл webpack.config.babel.js содержит несколько записей, таких как:
resolve: {
extensions: ['.js', '.jsx', '.ts', '.tsx', '.json'],
alias: getAlias(),
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
use: {
loader: 'babel-loader',
// options: ### to fully enable hot load / HMR, we use settings from package.json: babel.presets ###
},
exclude: /node_modules/
},
{
test: /\.(ts|tsx)$/,
use: {
loader: 'ts-loader',
},
exclude: /node_modules/
}
]}
В файле tsconfig.json есть записи:
{
"compilerOptions": {
"outDir": "./dist/",
"baseUrl": "src/",
"noImplicitAny": true,
"module": "es6",
"target": "es6",
"jsx": "react",
"allowJs": true,
"allowSyntheticDefaultImports": true,
"moduleResolution": "node",
"strictNullChecks": true
},
"include": [
"./src/**/*"
]
Я запускаю команду:
yarn run cross-env NODE_PATH=./src BABEL_ENV=test node --inspect node_modules/mocha/bin/_mocha --compilers jsx:babel-register --require source-map-support/register -r mock-local-storage -r ./ui-test.helper.js "src/**/*.test@(.js|.jsx)" --reporter progress
Было бы замечательно, если бы кто-нибудь помог мне разобраться с этим, чтобы я мог заставить Моку правильно найти мои компоненты Typescript. Благодаря.