nextjs项目中如何使用ts-transformer-keys?
How to use ts-transformer-keys in nextjs project?
我想从接口获取键作为字符串数组,以便我可以迭代 them.Over Whosebug 我发现我需要使用一个库 'ts-transformer-keys'。
由于在 nextjs 项目中我们同时拥有 webpack 和 typescript 所以我添加了 webpack 的配置和 tsconfig.json 提到的 ttypescript 和下面提到的 webpack link.
https://github.com/iqraabdulrauf/ts-transformer-keys/blob/master/README.md
问题是项目没有使用两个加载器 i.s 'ts-loader' 和 'awesome-typescript-loader' 进行编译。它没有获取 nextjs 中 pages 文件夹下的 _document.tsx 文件项目。
观看ts-patch , ts-transformer-keys
// tsconfig.json
{
"compilerOptions": {
// ...
"plugins": [
{ "transform": "ts-transformer-keys/transformer" }
]
},
// ...
}
UPD
如果 upper 不起作用,请设置 next.config.js
:
const keysTransformer = require('ts-transformer-keys/transformer').default;
const enumerateTransformer = require('ts-transformer-enumerate/transformer').default;
const isTransformer = require('typescript-is/lib/transform-inline/transformer').default;
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants');
module.exports = (phase, { defaultConfig }) => {
const config = {
webpack: (config, options) => {
config.module.rules.push({
test: /\.ts$/,
loader: 'ts-loader', // or 'next-babel-loader'
options: {
// make sure not to set `transpileOnly: true` here, otherwise it will not work
getCustomTransformers: program => ({
before: [
keysTransformer(program),
enumerateTransformer(program),
isTransformer(program)
]
})
}
});
return config
},
};
if (phase === PHASE_DEVELOPMENT_SERVER) {
// ...
}
return Object.assign (config, {
// constants to process.env.
});
};
如果没有安装,请安装 ts-loader
。您也可以使用 next-babel-loader
.
我想从接口获取键作为字符串数组,以便我可以迭代 them.Over Whosebug 我发现我需要使用一个库 'ts-transformer-keys'。 由于在 nextjs 项目中我们同时拥有 webpack 和 typescript 所以我添加了 webpack 的配置和 tsconfig.json 提到的 ttypescript 和下面提到的 webpack link.
https://github.com/iqraabdulrauf/ts-transformer-keys/blob/master/README.md
问题是项目没有使用两个加载器 i.s 'ts-loader' 和 'awesome-typescript-loader' 进行编译。它没有获取 nextjs 中 pages 文件夹下的 _document.tsx 文件项目。
观看ts-patch , ts-transformer-keys
// tsconfig.json
{
"compilerOptions": {
// ...
"plugins": [
{ "transform": "ts-transformer-keys/transformer" }
]
},
// ...
}
UPD
如果 upper 不起作用,请设置 next.config.js
:
const keysTransformer = require('ts-transformer-keys/transformer').default;
const enumerateTransformer = require('ts-transformer-enumerate/transformer').default;
const isTransformer = require('typescript-is/lib/transform-inline/transformer').default;
const { PHASE_DEVELOPMENT_SERVER } = require('next/constants');
module.exports = (phase, { defaultConfig }) => {
const config = {
webpack: (config, options) => {
config.module.rules.push({
test: /\.ts$/,
loader: 'ts-loader', // or 'next-babel-loader'
options: {
// make sure not to set `transpileOnly: true` here, otherwise it will not work
getCustomTransformers: program => ({
before: [
keysTransformer(program),
enumerateTransformer(program),
isTransformer(program)
]
})
}
});
return config
},
};
if (phase === PHASE_DEVELOPMENT_SERVER) {
// ...
}
return Object.assign (config, {
// constants to process.env.
});
};
如果没有安装,请安装 ts-loader
。您也可以使用 next-babel-loader
.