tern
tern copied to clipboard
Using Tern with create-react-app apps / Tern webpack-resolver out-of-date?
trafficstars
So, I'm not entirely sure, but it looks like perhaps create-react-app's react-scripts' Webpack config is doing something a little more complicated than Tern's Webpack plugin can understand?
Here's the .tern-project config I tried, basically from this reference:
{
"libs": [
"browser"
],
"loadEagerly": [],
"dontLoad": [],
"plugins": {
"modules": {},
"webpack": {
"configPath": "./node_modules/react-scripts/config/webpack.config.js"
}
}
}
I get this error-message:
$ NODE_ENV=development tern --verbose
test-proj/node_modules/react-dev-utils/ModuleScopePlugin.js:22
resolver.hooks.file.tapAsync(
^
TypeError: Cannot read property 'file' of undefined
at ModuleScopePlugin.apply (node_modules/react-dev-utils/ModuleScopePlugin.js:22:20)
at Resolver.apply (node_modules/tern/node_modules/tapable/lib/Tapable.js:375:16)
at node_modules/tern/node_modules/enhanced-resolve/lib/ResolverFactory.js:248:12
at Array.forEach (<anonymous>)
at Object.exports.createResolver (node_modules/tern/node_modules/enhanced-resolve/lib/ResolverFactory.js:247:10)
at getResolver (node_modules/tern/plugin/webpack.js:58:26)
at Object.webpack (node_modules/tern/plugin/webpack.js:76:18)
at exports.Server.loadPlugin (node_modules/tern/lib/tern.js:219:31)
at new exports.Server (node_modules/tern/lib/tern.js:128:12)
at startServer (node_modules/tern/bin/tern:168:16)
at Object.<anonymous> (node_modules/tern/bin/tern:163:14)
...
Reproduction:
nodenv local 10.12.0
npm install --global yarn [email protected]
npx create-react-app test-proj && cd test-proj
jq -n -j '.["plugins"]["webpack"]["configPath"] = "./node_modules/react-scripts/config/webpack.config.js"' > .tern-project
NODE_ENV=development tern --verbose
Possibly-relevant version numbers:
Node: 10.12.0 (reproduces on v8.x.x, as well)
Tern: 0.23.0
create-react-app: 2.1.2
react-scripts: 2.1.2
Webpack: 4.19.1
How about webpackDevServer.config.js
./node_modules/react-scripts/config/webpackDevServer.config.js