如何使用几个next.js插件(打字稿和手写笔)

时间:2018-05-11 13:57:39

标签: javascript reactjs typescript stylus next.js

我尝试使用next-compose-plugins使用typescript和stylus构建next.js项目。

我的next.config.js:

const withPlugins = require('next-compose-plugins')
const withTypescript = require('@zeit/next-typescript')
const withStylus = require('@zeit/next-stylus')

module.exports = withPlugins([

  [withTypescript, {
    webpack(config, options) {
      config.node = {
        fs: 'empty',
      }

      return config
    },
    typescriptLoaderOptions: {
      transpileOnly: false,
    }
  }],

  [withStylus, {
    cssModules: true,
  }],

])

在我的button.tsx我导入手写笔文件:

import styles from './button.styl'
console.log(styles) // undefined

button.styl包含我想在我的组件中使用的类名,而是包含undefined

我已将declare module '*.styl'添加到externals.d.ts并将其添加到include的{​​{1}}部分

我做错了什么?

UPD:tsconfig.json获得同样的问题。

1 个答案:

答案 0 :(得分:2)

@ zeit / next-typescript 1.0.0 3天前发布,并使用typescriptLoaderOptions引发错误:

Error: `typescriptLoaderOptions` in next.config.js is no longer supported. https://err.sh/next-plugins/typescript-loader-options
    at module.exports (/Users/set0gut1/tmp/stackoverflow/nextjs/node_modules/@zeit/next-typescript/index.js:15:11)

使用此版本,我可以导入手写笔文件。

  • next.config.js:从您这里删除typescriptLoaderOptions
  • 我不做externals.d.ts
  • index.tsx:
import styles from './button.styl'
console.log(styles) // { 'button-class-name': '_1U60cMSmedjISleJqYp7tU' }

export default () => {
    return <div>test</div>
}