Я только недавно понял, что первый запуск, который делает webpack, обеспечит компиляцию моих тестовых файлов машинописи.Никаких изменений после этого не видно.Я пытался переместить файл, изменить его имя и т. Д. У меня всегда возникает одна и та же проблема.Я предполагаю, что это проблема с моим tsloader, но тест /\.tsx?$/
довольно прост.
Вот моя структура каталогов:
|~front/
| |~app/
| | |~ItineraryBuilder/
| | | |~__test__/
| | | | `-index.spec.tsx
| | | `-index.tsx
| | |+reducers/
| | |-index.tsx
| | `-setupEnzyme.ts
| `-index.html
|-.gitignore
|-index.js
|-jest.config.js
|-package.json
|-tsconfig.json
|-tslint.json
|-webpack.config.js
tsconfig.json
{
"compilerOptions": {
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es6",
"jsx": "react"
},
"include": [
"./front/app/**/*"
]
}
webpack.config.js "^ 4.0.0-alpha.3"
const webpack = require('webpack');
const path = require('path');
const APP_DIR = path.resolve(__dirname, 'front/app');
const config = {
entry: APP_DIR + '/index.tsx',
output: {
path: path.resolve(__dirname, 'front/assets/js/'),
filename: 'bundle.js'
},
devtool: 'source-map',
resolve: {
alias: { frontapp: path.resolve(__dirname, 'front/app') },
extensions: ['.js', '.jsx', '.ts', '.tsx']
},
module: {
rules: [
{ test: /\.css$/, loader: 'style-loader'},
{
test: /\.tsx?$/,
loader: 'ts-loader'
},
{ enforce: "pre", test: /\.js$/, loader: 'source-map-loader' },
{ enforce: "pre", test: /\.tsx?$/, loader: 'tslint-loader' },
{
test: /\.css$/,
loader: 'css-loader',
query: {
modules: true,
localIdentName: '[name]__[local]___[hash:base64:5]'
}
}
]
},
};
module.exports = config;
Редактировать
Хорошо, я уверен, что это недоразумениев моей части.Я не думаю, что webpack должен создавать мои тестовые файлы.Но я положил их в обычный каталог проектов.Может быть, это ошибка в веб-пакете.По какой-то причине я подумал, что webpack также проверил файлы для тестов, но это не так.Предполагается, что Jest создаст файлы с помощью babel-jest или ts-jest, а затем все файлы не-js будут извлечены с помощью moduleNameMapper
.
При этом я не уверен, почему webpack не видит обновления в каталогах __test__
, но я начинаю думать, что мне следует просто исключить их из пути сборки.
Другое Редактирование
Я закончил тем, что добавил paths
раздел в свой tsconfig, и теперь jest запускает тесты правильно.
Соответствующий tsconfigКонфигурация .js
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"frontapp/*": ["front/app/*"]
}
}
}