В течение некоторого времени я пытался перенести модуль узла, который использует оператор распространения объекта.Это проблема для меня, потому что мое приложение должно поддерживать Edge и на данный момент оно не поддерживает оператор распространения объектов.
Я настроил загрузчик awesome-typcript для использования babelустановив для свойства useBabel значение true, чтобы мне не нужно было устанавливать babel-loader самостоятельно.Я также добавил пресет babel-preset-edge , который добавляет множество полезных пресетов и плагинов.Важным, который он добавляет по умолчанию, является @ babel-plugin-offer-object-rest-spread , который необходим для переноса этого модуля узла.
Даже с этой настройкой, удивительномашинопись, кажется, всегда игнорирует модуль, который я хочу передать.Это стало для меня очевидным, когда я сделал это
include: function(absPath) {
// I want to in include my source code or the module I want to transpile.
const includePath = /@furystack/.test(absPath) || /src/.test(absPath)
// this will always output true because all the paths have src in their path.
// Not a single one from node modules.
console.log(includePath)
return includePath
}
Он должен был вывести некоторые значения true и false (true, поскольку это либо мой исходный код, либо furystack, и false для всего остального), но это не былодело.
Вот так выглядят мои загрузчики
module: {
rules: removeEmpty([
{
test: /\.(ts|tsx)$/,
use: [
{
options: {
useTranspileModule: true,
forceIsolatedModules: true,
useCache: true,
useBabel: true,
reportFiles: ['src/**/*.{ts,tsx}'],
babelCore: '@babel/core'
},
loader: 'awesome-typescript-loader'
}
],
include: function(absPath) {
return /@furystack/.test(absPath) || /src/.test(absPath)
}
},
}
Вот так выглядит мой .babelrc
{
"presets": [
[
"edge",
{
"transpile": "modern",
"modules": "false"
}
]
]
}
А вот так выглядит мой .tsconfig.json
{
"compilerOptions": {
"outDir": "lib",
"module": "esnext",
"target": "esnext",
"lib": ["es6", "dom"],
"sourceMap": true,
"jsx": "preserve",
"baseUrl": "./src",
"rootDir": "./src",
"moduleResolution": "node",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"preserveConstEnums": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": false,
"alwaysStrict": false,
"allowSyntheticDefaultImports": true,
"noFallthroughCasesInSwitch": true,
"skipLibCheck": true,
"noEmit": true,
"types": ["jest", "node"]
},
"include": ["./src/**/*"],
"exclude": ["node_modules"]
}
Что не так с моей конфигурацией?