проверка типа.

у добавить поддержку потока в проект nuxt (мой проект использует webpack и babel). Могу ли я где-нибудь найти рабочий пример?

Если я бегуflow check, ошибок нет, плюшка при запускеyarn run devЯ получаю синтаксическую ошибку.

(Я знаю, что есть этиоставшийся без ответа вопросов там я поднимаю ту же самую проблему снова, надеясь, что на этот раз это достигнет некоторых парней со знанием вопроса.)

Спасибо

Ответы на вопрос(1)

Решение Вопроса

есс.

TLDR: использоватьwemake-vue-template, Идет сnuxt, flowи много других вкусностей.

галдеж

Прежде всего, нам нужно настроитьbabel, Вот так твояbabel Конфигурация должна выглядеть так:

{
  "presets": [
    ["vue-app", {
      "useBuiltIns": true
    }],
    "flow"
  ]
}

Установите эти подарки сnpm install --save-dev babel-preset-flow babel-preset-vue-app.

Eslint

Далее нам нужно настроитьeslint чтобы задержать нашflow файлы. Вот как.eslintrc должен выглядеть так:

{
  "root": true,
  "plugins": [
    "flowtype-errors"
  ],
  "env": {
    "node": true,
    "browser": true
  },
  "rules": {
    // raise flow errors
    "flowtype-errors/show-errors": 2,
    "flowtype-errors/show-warnings": 1,
    // "flowtype-errors/enforce-min-coverage": [2, 50]
  },
  "parserOptions": {
    "parser": "babel-eslint",
    "ecmaVersion": 2017,
    "sourceType": "module"
  }
}

Убедитесь, что вы все установили.

.flowconfig

Это самая сложная часть. Вам необходимо указать конфигурацию дляflow, Это может отличаться в зависимости от ваших настроек.

[ignore]
./nuxt/*
<PROJECT_ROOT>/node_modules/.*config-chain/test/broken.json

[include]
<PROJECT_ROOT>/client
<PROJECT_ROOT>/

[libs]

[lints]
all=warn
untyped-import=off
unsafe-getters-setters=off

[options]
include_warnings=true
esproposal.decorators=ignore
module.name_mapper='^~' -> '<PROJECT_ROOT>/client'
module.system.node.resolve_dirname=node_modules
module.system.node.resolve_dirname=client
module.file_ext=.vue
module.file_ext=.js
nuxt.config.js

Последний шаг Нам нужно включить линтинг на каждое изменение.

 build: {
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
     }
  }

Вот и все. Теперь у вас будет работатьflow проверка типа.

Ваш ответ на вопрос