未验证 提交 bee8c31b 编写于 作者: J Joe Haddad 提交者: GitHub

Lint for invalid imports (#13482)

This adds a lint rule to ensure we don't import dev dependencies by accident.
上级 5eafc1e9
......@@ -18,9 +18,19 @@
"settings": {
"react": {
"version": "detect"
}
},
"import/internal-regex": "^next/"
},
"overrides": [
{
"files": ["packages/**"],
"rules": {
"import/no-extraneous-dependencies": [
"error",
{ "devDependencies": false }
]
}
},
{
"files": ["test/**/*.test.js"],
"extends": ["plugin:jest/recommended"],
......
/* eslint-disable import/no-extraneous-dependencies */
import retry from 'async-retry'
import chalk from 'chalk'
import cpy from 'cpy'
......
/* eslint-disable import/no-extraneous-dependencies */
import got from 'got'
import tar from 'tar'
import { Stream } from 'stream'
......
/* eslint-disable import/no-extraneous-dependencies */
import { execSync } from 'child_process'
import path from 'path'
import rimraf from 'rimraf'
......
/* eslint-disable import/no-extraneous-dependencies */
import chalk from 'chalk'
import spawn from 'cross-spawn'
......
/* eslint-disable import/no-extraneous-dependencies */
import chalk from 'chalk'
import fs from 'fs'
import path from 'path'
......
// eslint-disable-next-line import/no-extraneous-dependencies
import validateProjectName from 'validate-npm-package-name'
export function validateNpmName(
......
#!/usr/bin/env node
/* eslint-disable import/no-extraneous-dependencies */
import chalk from 'chalk'
import Commander from 'commander'
import path from 'path'
......
......@@ -12,6 +12,7 @@
]
},
"peerDependencies": {
"next": "*"
"next": "*",
"react": "*"
}
}
......@@ -11,6 +11,7 @@
},
"peerDependencies": {
"@material-ui/styles": "*",
"next": "*"
"next": "*",
"react": "*"
}
}
/* eslint-disable import/no-extraneous-dependencies */
import 'core-js/features/array/copy-within'
import 'core-js/features/array/fill'
import 'core-js/features/array/find'
......
/* eslint-disable import/no-extraneous-dependencies */
const path = require('path')
module.exports = (distDir) => {
......
import path from 'path'
import fs from 'fs'
import path from 'path'
let inspector
try {
......@@ -69,6 +69,7 @@ class Profiler {
}
}
// eslint-disable-next-line import/no-extraneous-dependencies
const { Tracer } = require('chrome-trace-event')
/**
......
// eslint-disable-next-line import/no-extraneous-dependencies
import { NodePath } from 'ast-types/lib/node-path'
export interface IConformanceAnomaly {
......
import {
IWebpackConformanceTest,
IGetAstNodeResult,
IParsedModuleDetails,
IConformanceTestResult,
IConformanceTestStatus,
} from '../TestInterface'
// eslint-disable-next-line import/no-extraneous-dependencies
import { namedTypes } from 'ast-types'
// eslint-disable-next-line import/no-extraneous-dependencies
import { NodePath } from 'ast-types/lib/node-path'
import { types } from 'next/dist/compiled/recast'
import {
CONFORMANCE_ERROR_PREFIX,
CONFORMANCE_WARNING_PREFIX,
} from '../constants'
import { types } from 'next/dist/compiled/recast'
import { NodePath } from 'ast-types/lib/node-path'
import { namedTypes } from 'ast-types'
import { getLocalFileName } from '../utils/file-utils'
import {
IConformanceTestResult,
IConformanceTestStatus,
IGetAstNodeResult,
IParsedModuleDetails,
IWebpackConformanceTest,
} from '../TestInterface'
import {
isNodeCreatingScriptElement,
reducePropsToObject,
} from '../utils/ast-utils'
import { getLocalFileName } from '../utils/file-utils'
function getMessage(
property: string,
......
......@@ -9,7 +9,9 @@ import {
CONFORMANCE_ERROR_PREFIX,
CONFORMANCE_WARNING_PREFIX,
} from '../constants'
// eslint-disable-next-line import/no-extraneous-dependencies
import { namedTypes } from 'ast-types/'
// eslint-disable-next-line import/no-extraneous-dependencies
import { NodePath } from 'ast-types/lib/node-path'
import { getLocalFileName } from '../utils/file-utils'
import { isNodeCreatingScriptElement } from '../utils/ast-utils'
......
import { Compiler, compilation } from 'webpack'
// eslint-disable-next-line import/no-extraneous-dependencies
import { NodePath } from 'ast-types/lib/node-path'
import { visit } from 'next/dist/compiled/recast'
import { compilation, Compiler } from 'webpack'
import {
IConformanceTestResult,
IWebpackConformanceTest,
IConformanceAnomaly,
IConformanceTestResult,
IConformanceTestStatus,
IGetAstNodeResult,
IWebpackConformanceTest,
NodeInspector,
IConformanceTestStatus,
} from './TestInterface'
import { NodePath } from 'ast-types/lib/node-path'
import { visit } from 'next/dist/compiled/recast'
export { MinificationConformanceCheck } from './checks/minification-conformance-check'
export { ReactSyncScriptsConformanceCheck } from './checks/react-sync-scripts-conformance-check'
export { DuplicatePolyfillsConformanceCheck } from './checks/duplicate-polyfills-conformance-check'
export { GranularChunksConformanceCheck } from './checks/granular-chunks-conformance'
export { MinificationConformanceCheck } from './checks/minification-conformance-check'
export { ReactSyncScriptsConformanceCheck } from './checks/react-sync-scripts-conformance-check'
export interface IWebpackConformancePluginOptions {
tests: IWebpackConformanceTest[]
......
import { types } from 'next/dist/compiled/recast'
// eslint-disable-next-line import/no-extraneous-dependencies
import { namedTypes } from 'ast-types'
import { types } from 'next/dist/compiled/recast'
export function isNodeCreatingScriptElement(node: namedTypes.CallExpression) {
const callee = node.callee as namedTypes.Identifier
......
import { EventEmitter } from 'events'
import { IncomingMessage, ServerResponse } from 'http'
import WebpackDevMiddleware from 'next/dist/compiled/webpack-dev-middleware'
import { join, posix } from 'path'
import { stringify } from 'querystring'
import { parse } from 'url'
import webpack from 'webpack'
import WebpackDevMiddleware from 'webpack-dev-middleware'
import DynamicEntryPlugin from 'webpack/lib/DynamicEntryPlugin'
import { isWriteable } from '../build/is-writeable'
import * as Log from '../build/output/log'
......
// eslint-disable-next-line import/no-extraneous-dependencies
const ncc = require('@zeit/ncc')
const { existsSync, readFileSync } = require('fs')
const { basename, dirname, extname, join } = require('path')
......
// eslint-disable-next-line import/no-extraneous-dependencies
const notifier = require('node-notifier')
const relative = require('path').relative
......
/* eslint-disable import/no-extraneous-dependencies */
declare module '@babel/plugin-transform-modules-commonjs'
declare module 'browserslist'
declare module 'cssnano-simple' {
......
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable import/no-extraneous-dependencies, @typescript-eslint/no-unused-vars */
// Type definitions for webpack 4.39
// Project: https://github.com/webpack/webpack
// Definitions by: Qubo <https://github.com/tkqubo>
......
......@@ -9,6 +9,7 @@ import {
} from 'source-map'
import { StackFrame } from 'stacktrace-parser'
import url from 'url'
// eslint-disable-next-line import/no-extraneous-dependencies
import webpack from 'webpack'
import { getRawSourceMap } from './internal/helpers/getRawSourceMap'
import { launchEditor } from './internal/helpers/launchEditor'
......
......@@ -6321,6 +6321,7 @@ eslint-module-utils@^2.4.1:
eslint-plugin-import@2.20.2:
version "2.20.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d"
integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==
dependencies:
array-includes "^3.0.3"
array.prototype.flat "^1.2.1"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册