Как транспилировать node_modules с помощью Turborepo и SWC
next-transpile-modules
отлично работает для проектов Next, но как мне транспилировать модули для необработанной сборки SWC ??? Я запутался 😭
Репо: https://github.com/deltaepsilon/script-kitty
Я начал с базы Turborepo и экспортировал два пакета в приложение Turborepo Next с именем
web
. Все работало отлично, как только я добавил
ui
и к
next.config.js
файл так:
const withTM = require('next-transpile-modules')(['command-k', 'ui']);
module.exports = withTM({
reactStrictMode: true,
});
Теперь у меня есть новое приложение под названием
external
это будет отдельная сборка
command-k
упаковка. Это будет опубликовано в npm.
Я использую для его переноса со следующей конфигурацией:
const path = require('path');
// See https://github.com/iykekings/react-swc-loader-template
const config = {
mode: 'development',
entry: './index.tsx',
module: {
rules: [
{
test: /\.(ts|tsx)$/,
loader: 'swc-loader',
include: [
path.resolve(__dirname),
path.resolve(__dirname, '../../packages/command-k'),
path.resolve(__dirname, '../../packages/ui'),
],
exclude: /node_modules/,
},
],
},
};
module.exports = config;
Я продолжаю получать следующую ошибку при сборке с
yarn dev
:
ERROR in ../../packages/command-k/index.tsx 2:0-50
Module not found: Error: Can't resolve './command-k' in '/kitty/packages/command-k'
resolve './command-k' in '/kitty/packages/command-k'
using description file: /kitty/packages/command-k/package.json (relative path: .)
// /packages/command-k/index.tsx
import * as React from 'react';
export { default as CommandK } from './command-k';
Похоже, что-то не удается импортировать из пакета Turborepo. Он отлично работает, если я встраиваю содержимое
./command-k
в
/packages/command-k/index.tsx
, но
swc-loader
отказывается следовать импорту.