当我运行ESLint时,我收到以下错误:
1:13 error 'joi' should be listed in the project's dependencies. Run 'npm i -S joi' to add it import/no-extraneous-dependencies
2:16 error 'lodash' should be listed in the project's dependencies. Run 'npm i -S lodash' to add it import/no-extraneous-dependencies
但是,我已经安装了这两个模块,并且在package.json
:
"joi": "^10.4.2",
// Some other packages
"lodash": "^4.17.2",
并且正在运行:
npm i -S joi
无法帮助或解决问题。我的package.json
还有很多其他软件包,只有这两个软件包有问题。它是可能这是一个错误,但ESLint有很多眼睛,我认为我更有可能做错了...只有我无法弄清楚是什么(这些包与package.json
中的任何其他包看起来一样)。
任何人都可以建议我(无意中)做出关于这两个软件包的ESLint投诉,并且只考虑那两个软件包,尽管它们已经安装了吗?
修改
这是我的package.json(删除了一些不相关的识别位):
{
"name": "foo",
"version": "1.0.0",
"engines": {
"node": "6.9.4"
},
"scripts": {
"some": "scripts",
},
"ava": {
"babel": "inherit",
"require": "babel-register",
"serial": true,
"verbose": true
},
"devDependencies": {
"@3846masa/axios-cookiejar-support": "0.0.4",
"apidoc": "^0.17.5",
"ava": "^0.17.0",
"babel-eslint": "^7.1.1",
"babel-plugin-module-alias": "^1.6.0",
"babel-react-render-defender": "^1.1.1",
"chai": "^3.5.0",
"chai-enzyme": "^0.6.1",
"del": "^2.2.2",
"enzyme": "^2.6.0",
"eslint": "^3.19.0",
"eslint-config-airbnb": "^13.0.0",
"eslint-import-resolver-babel-module": "^3.0.0",
"eslint-plugin-babel": "^4.0.0",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-jsx-a11y": "^2.2.3",
"eslint-plugin-react": "^6.8.0",
"jsdom": "^9.9.1",
"nodemon": "^1.11.0",
"proxyquire": "^1.7.10",
"react-addons-test-utils": "^15.4.1",
"react-hot-loader": "^3.0.0-beta.6",
"really-need": "^1.9.2",
"redux-devtools-extension": "^1.0.0",
"s3rver": "^1.0.2",
"sinon": "^1.17.6",
"style-loader": "^0.13.1",
"supertest": "^2.0.1"
},
"dependencies": {
"autoprefixer": "^6.5.4",
"ava": "^0.17.0",
"aws-sdk": "^2.7.21",
"axios": "^0.15.3",
"babel-core": "^6.20.0",
"babel-loader": "^6.2.9",
"babel-plugin-lodash": "^3.2.11",
"babel-plugin-module-resolver": "^2.5.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-object-rest-spread": "^6.22.0",
"babel-plugin-transform-runtime": "^6.15.0",
"babel-preset-decorators-legacy": "^1.0.0",
"babel-preset-es2015": "^6.18.0",
"babel-preset-react": "^6.16.0",
"babel-runtime": "^6.20.0",
"bluebird": "^3.4.6",
"body-parser": "^1.17.1",
"celebrate": "^4.0.0",
"chai-diff": "^1.0.1",
"classnames": "^2.2.5",
"clipboard": "^1.6.1",
"compression": "^1.6.2",
"cookie-parser": "^1.4.3",
"cookie-session": "^2.0.0-alpha.2",
"core-decorators": "^0.15.0",
"csrf": "^3.0.6",
"css-mqpacker": "^5.0.1",
"cssnano": "^3.9.1",
"debug": "^2.6.0",
"dotenv": "^2.0.0",
"express": "^4.14.0",
"express-sanitizer": "^1.0.2",
"extract-text-webpack-plugin": "^1.0.1",
"faker": "^3.1.0",
"feedparser": "^2.0.0",
"file-loader": "^0.10.0",
"flatpickr": "^2.6.1",
"helmet": "^3.5.0",
"html-webpack-plugin": "^2.28.0",
"immutability-helper": "^2.1.1",
"joi": "^10.4.1",
"js-cookie": "^2.1.3",
"json-loader": "^0.5.4",
"jsonp-promise": "^0.1.2",
"knex": "0.12.9",
"libxmljs": "^0.18.4",
"lodash": "^4.17.2",
"lodash-webpack-plugin": "^0.11.0",
"moment": "^2.18.1",
"morgan": "^1.7.0",
"node-fetch": "^1.6.3",
"pg": "^6.1.2",
"plist": "^2.0.1",
"postcss": "^5.2.6",
"postcss-custom-media": "^5.0.1",
"postcss-custom-properties": "^5.0.1",
"postcss-import": "^9.0.0",
"postcss-loader": "^1.2.1",
"raw-loader": "^0.5.1",
"rc-time-picker": "^2.3.3",
"react": "^15.4.1",
"react-addons-shallow-compare": "^15.4.2",
"react-dnd": "^2.2.3",
"react-dnd-html5-backend": "^2.2.3",
"react-dom": "^15.4.1",
"react-flatpickr": "^3.3.0",
"react-json-tree": "^0.10.1",
"react-modal": "^1.6.5",
"react-redux": "^5.0.0",
"react-router": "^3.0.0",
"react-router-redux": "^4.0.7",
"react-sortable-hoc": "^0.6.1",
"react-virtualized": "^8.11.4",
"recompose": "^0.23.1",
"redux": "^3.6.0",
"redux-actions": "^1.2.0",
"redux-debounce": "^1.0.1",
"redux-logger": "^2.7.4",
"redux-promise": "^0.5.3",
"redux-thunk": "^2.1.0",
"reselect": "^2.5.4",
"stylelint": "^7.7.0",
"svg-react-loader": "^0.4.0-beta.2",
"svgo": "^0.7.1",
"to-exports": "^0.1.0",
"twit": "^2.2.5",
"url-loader": "^0.5.7",,
"webpack": "^1.14.0",
"webpack-dev-middleware": "^1.8.4",
"webpack-hot-middleware": "^2.15.0",
"webpack-split-chunks": "^0.1.1",
"xmlbuilder": "^8.2.2"
}
}
你可以看到它很简单;只是很多包。这是.eslintrc
:
{
"extends": "airbnb",
"env": {
"browser": true,
"node": true
},
"globals": {
"NODE_ENV": true,
"isProduction": true,
"__ROUTE__": true
},
"parser": "babel-eslint",
"plugins": [
"babel"
],
"rules": {
"react/jsx-filename-extension": [
"error",
{
"extensions": [
".js",
".jsx"
]
}
],
"comma-dangle": [
"error",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "ignore"
}
],
"eol-last": "error",
"import/order": "error",
"This next rule is just temporary until we start using PropTypes": 0,
"react/prop-types": 0
},
"settings": {
"import/resolver": {
"babel-module": {}
}
}
}
答案 0 :(得分:5)
将以下内容添加到您的eslint中,只是为了拥有正确的规则。是的,你也可以把它关掉,但错误是有原因的。
"import/no-extraneous-dependencies": ["error", {"devDependencies": false, "optionalDependencies": false, "peerDependencies": false}]
据我所知,你的package.json没有问题,所以它必须是语法问题。
我没有您的代码,所以我将展示示例:
var _ = require('lodash');
import _ from 'lodash';
如果您有上述代码(或类似内容)
然后将其更改为:
import test from 'ava';
import find from 'lodash.find';
您可以在这里阅读更多内容:
答案 1 :(得分:3)
我遇到了同样的问题。
为我解决的是明确添加packageDir选项:
"import/no-extraneous-dependencies": [
"error", {
"devDependencies": false,
"optionalDependencies": false,
"peerDependencies": false,
"packageDir": "./"
}
]
答案 2 :(得分:3)
devDependencies: packageDir
或devDependencies: false
解决方案对我不起作用,但最终我解决了这个问题。这对我有用:
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": ["test/**"],
"optionalDependencies": false,
"peerDependencies": false
}
],
只需在devDependencies
而不是false
列出您的测试文件夹。
答案 3 :(得分:1)
我只是通过将devDependencies设置为true来解决它,默认情况下,它是false。
"import/no-extraneous-dependencies": [
"error", {
"devDependencies": true
}
]
答案 4 :(得分:0)
我遇到了这个问题,因为某个工具(很可能是“汇总”)在项目的子目录中生成了另一个<p>Size = @Size</p>
@code {
long Size = 1234567890;
}
(包含空JSON package.json
)。删除该文件很有帮助。