我想为nuxt项目添加流支持(我的项目使用webpack和babel)。我可以在某个地方找到一个有效的例子吗?
如果我运行flow check
,则没有错误,当我运行yarn run dev
时,包含语法错误。
(我知道那里有unanswered questions,我再次提出同样的问题,希望这次会有一些人知道这个问题。)
由于
答案 0 :(得分: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
来lint我们的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"
}
}
确保已安装好所有内容。
这是最难的部分。您需要为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
最后一步。我们需要在每次更改时启用linting。
build: {
extend (config, { isDev, isClient }) {
if (isDev && isClient) {
config.module.rules.push({
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /(node_modules)/
})
}
}
那就是它。现在,您将进行flow
类型检查。