【发布时间】:2021-06-21 06:24:53
【问题描述】:
我正在处理的项目需要为生成的 scss 输出 .d.ts 文件。我没有手动设置,而是在 Storybook 中进行了设置,以便 css-modules-typescript-loader 自动生成这些文件。
我正在尝试在 nextjs 中实现相同的功能,但它似乎不愿意让我这样做。我已修改 next.config.js 以包含以下内容:
webpack: function (config, options) {
const { dir, defaultLoaders } = options
config.module.rules.push({
test: /\.md$/,
use: 'markdown-loader'
})
config.module.rules.push({
test: /\.module.scss$/,
include: [dir],
exclude: /node_modules/,
use: [
defaultLoaders.babel,
{
loader: 'css-modules-typescript-loader',
options: { mode: process.env.CI ? 'verify' : 'emit' }
}
]
})
return config
},
但是,如果我这样做,它可以理解地取代下一个已经在做的处理(这会导致问题),我不需要它来做任何事情,我想要的只是 d.ts 文件。这在 nextjs 中可以实现吗?
编辑:我尝试使用外部包,例如 typed-scss-modules,但不幸的是,我们在 next.config.js 中配置的 sass 文件中使用命名空间(例如,请参见下文),并且该包似乎没有请允许我指定这些:
sassOptions: {
outputStyle: 'expanded',
indentWidth: 4,
prependData: `
@use '@themes/vars' as vars;
@use '@themes/breakpoints' as bp;
`
}
【问题讨论】:
标签: typescript sass next.js