Skip to content

Doesn't support require() statements with backtick strings for Node.js #405

@verhovsky

Description

@verhovsky

In Node you can do

import(`module-name`)
require(`module-name`)

which you sometimes see in third-party code

https://sourcegraph.com/search?q=context%3Aglobal+require%28%60&patternType=keyword&sm=0&df=%5B%22lang%22%2C%22JavaScript%22%2C%22lang%3Ajavascript%22%5D&__cc=1

but this regex misses them

var nodejsGuessRegexps = util.Regexps([]string{
// import defaultExport from "module-name";
// import * as name from "module-name";
// import { export } from "module-name";
`(?m)from\s*['"]([^'"]+)['"]\s*;?\s*$`,
// import "module-name";
`(?m)import\s*['"]([^'"]+)['"]\s*;?\s*$`,
// const mod = import("module-name")
// const mod = require("module-name")
`(?m)(?:require|import)\s*\(\s*['"]([^'"{}]+)['"]\s*\)`,
})

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions