Я пытаюсь использовать webpack и babel, и я получаю ошибки, которых нет нигде в сети. Пока я тестирую, это очень простой js, и он все еще выдает ошибки в тех местах, где не должен.
var test = () => {
console.info("Test")
}
test()
Я получаю сообщение об ошибке:
ERROR in ./dist/main.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
TypeError: val is not a function
ERROR in ./dist/main.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
TypeError: val is not a function
at cache.using (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\caching.js:179:47)
at CacheConfigurator.using (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\caching.js:132:17)
at Object.cacheFn [as cache] (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\caching.js:179:18)
at module.exports (C:\Users\Bacon\Desktop\ReactProj\jsx\babel.config.js:2:9)
at readConfigJS (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\files\configuration.js:212:15)
at cachedFunction (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\caching.js:33:19)
at readConfig (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\files\configuration.js:173:56) at findRootConfig (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\files\configuration.js:148:16)
at buildRootChain (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\config-chain.js:78:44)
at loadPrivatePartialConfig (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\partial.js:85:55)
at Object.loadPartialConfig (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\@babel\core\lib\config\partial.js:110:18)
at Object.<anonymous> (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\babel-loader\lib\index.js:140:26)
at Generator.next (<anonymous>)
at asyncGeneratorStep (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\babel-loader\lib\index.js:3:103)
at _next (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\babel-loader\lib\index.js:5:194)
at C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\babel-loader\lib\index.js:5:364
at new Promise (<anonymous>)
at Object.<anonymous> (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\babel-loader\lib\index.js:5:97)
at Object._loader (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\babel-loader\lib\index.js:220:18)
at Object.loader (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\babel-loader\lib\index.js:56:18)
at Object.<anonymous> (C:\Users\Bacon\Desktop\ReactProj\jsx\node_modules\babel-loader\lib\index.js:51:12)
В моем коде нигде нет val, поэтому я не вижу, где что-то идет не так. Вот мои devDependencies в моем проекте.json
"devDependencies": {
"@babel/core": "^7.3.4",
"@babel/plugin-proposal-class-properties": "^7.3.4",
"@babel/preset-env": "^7.3.4",
"@babel/preset-es2015": "^7.0.0-beta.53",
"@babel/preset-react": "^7.0.0",
"babel-loader": "^8.0.5",
"standard": "^12.0.1",
"webpack": "^4.29.5",
"webpack-cli": "^3.2.3"
}
Я пытался понять это в течение нескольких часов, но безрезультатно, и я схожу с ума, не имея возможности найти это в Google.
Просто добавил остальную часть трассировки стека. Мне не кажется особенно полезным.
В трассировке стека упоминается jsx\babel.config.js, который вызывает функцию, которая затем вызывает исключение, поэтому, скорее всего, ваша конфигурация вызывает функцию неправильным образом. Если вы включите контент babel.config.js, я могу сказать вам, что не так.
Я только что посмотрел и обнаружил, что app.cache() не имеет значения в скобках. Я установил его на true, и теперь он работает.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В babel.config.js я установил параметр app.cache() на true, и теперь он работает.
Если вы используете babel.config.js вместо .babelrc и у вас есть это:
module.exports = api => {
api.cache();
return {
...
}
}
cache требует логического аргумента. Так что либо передайте true, либо false в cache() вот так: api.cache(true);
Поскольку вы не включили трассировку стека для ошибки, в настоящее время на нее нельзя ответить.