Gatsby: Сборка завершается ошибкой после "Неожиданного токена" в `async-requires` после обновления до 2.0.84

Созданный на 21 янв. 2019  ·  81Комментарии  ·  Источник: gatsbyjs/gatsby

Описание

Запуск rm -rf .cache && rm -rf public && gatsby-build отлично работает под 2.0.83. После обновления до 2.0.84 выдается ошибка, прерывающая сборку.

Действия по воспроизведению

Единственное, что я беру, это пробег gatsby build . После возврата к версии 2.0.83 проблема исчезнет.

Ожидаемый результат

Сборка должна завершиться успешно

Фактический результат

Сборка завершается со следующей ошибкой:

success onPostBootstrap — 0.202 s

info bootstrap finished - 6.171 s


error Generating JavaScript bundles failed


  Error: ./.cache/async-requires.js 8:11
  Module parse failed: Unexpected token (8:11)
  You may need an appropriate loader to handle this file type.
  | exports.components = {
  |   "component---node-modules-gatsby-plugin-offline-app-shell-js": function componentNodeModulesGatsbyPluginOfflineAppShellJs() {
  >     return import("/Users/dereklindahl/Work/APP/node_modules/gatsby-plugin-offline/app-shell.js"
  |     /* webpackChunkName: "component---node-modules-gatsby-plugin-offline-app-shell-js" */
  |     );
   @ ./.cache/production-app.js 18:0-45 21:23-36 26:23-36

Окружающая обстановка

npx gatsby info -- --clipboard                 

  System:
    OS: macOS High Sierra 10.13.6
    CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
    Shell: 5.4.2 - /usr/local/bin/zsh
  Binaries:
    Node: 10.14.0 - ~/.nodenv/versions/10.14.0/bin/node
    Yarn: 1.12.3 - /usr/local/bin/yarn
    npm: 6.4.1 - ~/.nodenv/versions/10.14.0/bin/npm
  Languages:
    Python: 2.7.10 - /usr/bin/python
  Browsers:
    Chrome: 71.0.3578.98
    Firefox: 63.0.3
    Safari: 12.0.2
  npmPackages:
    gatsby: 2.0.84 => 2.0.84 
    gatsby-image: ^2.0.25 => 2.0.25 
    gatsby-mdx: ^0.2.0 => 0.2.0 
    gatsby-plugin-canonical-urls: ^2.0.8 => 2.0.8 
    gatsby-plugin-google-analytics: ^2.0.8 => 2.0.8 
    gatsby-plugin-manifest: ^2.0.13 => 2.0.13 
    gatsby-plugin-netlify: ^2.0.6 => 2.0.6 
    gatsby-plugin-netlify-cache: ^1.0.0 => 1.0.0 
    gatsby-plugin-offline: ^2.0.21 => 2.0.21 
    gatsby-plugin-react-helmet: ^3.0.5 => 3.0.5 
    gatsby-plugin-sharp: ^2.0.17 => 2.0.17 
    gatsby-plugin-sitemap: ^2.0.4 => 2.0.4 
    gatsby-plugin-sri: ^1.0.4 => 1.0.4 
    gatsby-plugin-styled-components: ^3.0.4 => 3.0.4 
    gatsby-plugin-zopfli: ^1.0.2 => 1.0.2 
    gatsby-source-filesystem: ^2.0.12 => 2.0.12 
    gatsby-transformer-sharp: ^2.1.10 => 2.1.10 

Я видел # 10038, который звучал знакомо, но моя конфигурация Webpack неинтересна:

// gatsby-node.js
exports.onCreateWebpackConfig = ({ actions }) => {
  actions.setWebpackConfig({
    module: {
      rules: [
        {
          test: /\.ogv$/,
          use: [
            {
              loader: require.resolve(`url-loader`),
              options: { limit: 10000, name: 'static/[name]-[hash].[ext]' }
            }
          ]
        }
      ]
    },
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'src/components')
      },
      modules: [path.resolve(__dirname, 'src'), 'node_modules']
    }
  })
}

И комментирование этого блока не исправляет ошибку.

Если я заменю gatsby-plugin-offline на gatsby-plugin-remove-serviceworker , проблема останется, но с другим асинхронным импортом.

FWIW, я не замечаю разницы в содержании async-require.js в сборках 2.0.83 или 2.0.84, и обновление gatsby-plugin-offline имело никакого значения.

needs reproduction question or discussion

Самый полезный комментарий

Обходной путь - установить зависимости с помощью Yarn вместо npm, который, кажется, работает после импорта файла блокировки npm.

Все 81 Комментарий

У меня возникла аналогичная ошибка после обновления с 2.0.62 до 2.0.91 .

В моем случае gatsby develop работает нормально, но gatsby build выдает ошибки либо на странице template.js (если я включаю ее), либо на 404.js (если я удаляю createPages сниппет из gatsby-node ):

error Generating JavaScript bundles failed

Error: ./.cache/async-requires.js 8:11
  Module parse failed: Unexpected token (8:11)
  You may need an appropriate loader to handle this file type.
  | exports.components = {
  |   "component---src-templates-template-js": function componentSrcTemplatesTemplateJs() {
  >     return import("/Users/michael/Sites/projects/gatsby-starter/src/templates/template.js"
  |     /* webpackChunkName: "component---src-templates-template-js" */  |     );
   @ ./.cache/production-app.js 18:0-45 21:23-36 26:23-36

или же

error Generating JavaScript bundles failed

Error: ./.cache/async-requires.js 8:11
  Module parse failed: Unexpected token (8:11)
  You may need an appropriate loader to handle this file type.
  | exports.components = {
  |   "component---src-pages-404-js": function componentSrcPages404Js()   {
  >     return import("/Users/michael/Sites/projects/gatsby-starter/src/pages/404.js"
  |     /* webpackChunkName: "component---src-pages-404-js" */
  |     );
   @ ./.cache/production-app.js 18:0-45 21:23-36 26:23-36

Все работало нормально до обновления gatsby . 🤷‍♂️

@dlindahl @ooloth

Не могли бы вы дать ссылку на минимальные репродукции этого?

Я получаю ту же ошибку, используя Gatsby v 2.0.55, где package-lock.json отключен в .npmrc. Сайт ежедневно строится из чистого рабочего пространства. Сегодня это сработало, на следующий - нет. Я предполагаю, что ошибка связана с какой-то временной зависимостью, которая изменилась.

та же проблема, когда я обновляю gatsby с v2.0.91 до v2.0.93 ( v2.0.92 ) не существует

Привет, вмешиваюсь, чтобы сказать, что в настоящее время я также испытываю эту проблему, но изо всех сил пытаюсь создать для нее минимальное воспроизведение.

В настоящее время запуск npm update в моем репозитории вызывает сбой сборки, но не для моего личного веб-сайта .

Я буду копаться, пока не найду причину, или пока кто-нибудь не выяснит это. Если я смогу полностью изолировать его, я отправлю его сюда.

Благодаря!

Тоже самое!
Я набрал npm update -g npm чтобы получить версию npm 6.7.0, и у меня есть gatsby 2.0.98.

автономная версия плагина gatsby -> 2.0.21

Репозиторий с этой проблемой: вот и все .

Также вы можете перечислить установленные зависимости с помощью npm ls и запустить node --version ?

Здесь тоже может оказаться полезным деление пополам. Я протестирую репо через несколько минут.

Хорошо, здесь такая же ошибка. Я разрежу это пополам.

Кажется, это происходит во всех версиях, так что, вероятно, это плагин или другая зависимость.
Будем тестировать дальше.

Думаю, я нашел причину. Предоставлю патч и пиар.

@omrllm (патч для gatsby 2.0.60)

patch-package
--- a/node_modules/gatsby/dist/internal-plugins/query-runner/pages-writer.js
+++ b/node_modules/gatsby/dist/internal-plugins/query-runner/pages-writer.js
@@ -86,9 +86,9 @@ const preferDefault = m => m && m.default || m
     let asyncRequires = `// prefer default export if available
 const preferDefault = m => m && m.default || m
 \n`;
-    asyncRequires += `exports.components = {\n${components.map(c => `  "${c.componentChunkName}": () => import("${(0, _path.joinPath)(c.component)}" /* webpackChunkName: "${c.componentChunkName}" */)`).join(`,\n`)}
+    asyncRequires += `exports.components = {\n${components.map(c => `  "${c.componentChunkName}": () => require("${(0, _path.joinPath)(c.component)}" /* webpackChunkName: "${c.componentChunkName}" */)`).join(`,\n`)}
 }\n\n`;
-    asyncRequires += `exports.data = () => import("${(0, _path.joinPath)(program.directory, `.cache`, `data.json`)}")\n\n`;
+    asyncRequires += `exports.data = () => require("${(0, _path.joinPath)(program.directory, `.cache`, `data.json`)}")\n\n`;

     const writeAndMove = (file, data) => {
       const destination = (0, _path.joinPath)(program.directory, `.cache`, file);

Изменив import на require он должен работать. Вероятно, просто отсутствует загрузчик, но зачем использовать здесь import когда способ ESM просто создает проблемы, и смешивание exports с import никогда не является хорошей идеей.

+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
added 9 packages from 3 contributors, removed 4 packages, updated 92 packages and audited 43569 packages in 200.269s
diff 23.cache/ .cache/
Only in 23.cache/: .sonarlint
Common subdirectories: 23.cache/__tests__ and .cache/__tests__
Common subdirectories: 23.cache/caches and .cache/caches
Common subdirectories: 23.cache/commonjs and .cache/commonjs
diff 23.cache/data.json .cache/data.json
1c1
< {"pages":[{"componentChunkName":"component---src-pages-index-js","jsonName":"index","path":"/"},{"componentChunkName":"component---src-pages-404-js","jsonName":"404-html-516","path":"/404.html"},{"componentChunkName":"component---src-pages-404-js","jsonName":"404-22d","path":"/404/"},{"componentChunkName":"component---src-pages-about-js","jsonName":"about-f34","path":"/about/"},{"componentChunkName":"component---src-pages-contact-js","jsonName":"contact-26a","path":"/contact/"}],"dataPaths":{"404-22d":"657/path---404-22-d-bce-yc2HAWbdDECy3NCKIhFOCg1lY8","404-html-516":"84/path---404-html-516-62a-yc2HAWbdDECy3NCKIhFOCg1lY8","about-f34":"691/path---about-f-34-4c2-WV9OHhcgC975Z2f0az9WK5Dpl0Y","contact-26a":"662/path---contact-26-a-cd9-SNoLKPyPsqQ59X6yAuuT79ALOJc","index":"612/path---index-6a9-j0JKW3rrllGOOtWKwyNn0ujHMk"}}
\ No newline at end of file
---
> {"pages":[{"componentChunkName":"component---src-pages-index-js","jsonName":"index","path":"/"},{"componentChunkName":"component---src-pages-404-js","jsonName":"404-html-516","path":"/404.html"},{"componentChunkName":"component---src-pages-404-js","jsonName":"404-22d","path":"/404/"},{"componentChunkName":"component---src-pages-about-js","jsonName":"about-f34","path":"/about/"},{"componentChunkName":"component---src-pages-contact-js","jsonName":"contact-26a","path":"/contact/"}],"dataPaths":{"404-22d":"657/path---404-22-d-bce-yc2HAWbdDECy3NCKIhFOCg1lY8","404-html-516":"84/path---404-html-516-62a-yc2HAWbdDECy3NCKIhFOCg1lY8","about-f34":"691/path---about-f-34-4c2-WV9OHhcgC975Z2f0az9WK5Dpl0Y","contact-26a":"662/path---contact-26-a-cd9-SNoLKPyPsqQ59X6yAuuT79ALOJc","index":"770/path---index-6a9-dVi4vZoL0B52PVt3C79b9kQk"}}
\ No newline at end of file
diff 23.cache/default-html.js .cache/default-html.js
4,31c4,29
< export default class HTML extends React.Component {
<   render() {
<     return (
<       <html {...this.props.htmlAttributes}>
<         <head>
<           <meta charSet="utf-8" />
<           <meta httpEquiv="x-ua-compatible" content="ie=edge" />
<           <meta
<             name="viewport"
<             content="width=device-width, initial-scale=1, shrink-to-fit=no"
<           />
<           {this.props.headComponents}
<         </head>
<         <body {...this.props.bodyAttributes}>
<           {this.props.preBodyComponents}
<           <noscript key="noscript" id="gatsby-noscript">
<             This app works best with JavaScript enabled.
<           </noscript>
<           <div
<             key={`body`}
<             id="___gatsby"
<             dangerouslySetInnerHTML={{ __html: this.props.body }}
<           />
<           {this.props.postBodyComponents}
<         </body>
<       </html>
<     )
<   }
---
> export default function HTML(props) {
>   return (
>     <html {...props.htmlAttributes}>
>       <head>
>         <meta charSet="utf-8" />
>         <meta httpEquiv="x-ua-compatible" content="ie=edge" />
>         <meta
>           name="viewport"
>           content="width=device-width, initial-scale=1, shrink-to-fit=no"
>         />
>         {props.headComponents}
>       </head>
>       <body {...props.bodyAttributes}>
>         {props.preBodyComponents}
>         <noscript key="noscript" id="gatsby-noscript">
>           This app works best with JavaScript enabled.
>         </noscript>
>         <div
>           key={`body`}
>           id="___gatsby"
>           dangerouslySetInnerHTML={{ __html: props.body }}
>         />
>         {props.postBodyComponents}
>       </body>
>     </html>
>   )
Common subdirectories: 23.cache/fragments and .cache/fragments
Common subdirectories: 23.cache/json and .cache/json
diff 23.cache/navigation.js .cache/navigation.js
37c37
< const onPreRouteUpdate = location => {
---
> const onPreRouteUpdate = (location, prevLocation) => {
39c39
<     apiRunner(`onPreRouteUpdate`, { location })
---
>     apiRunner(`onPreRouteUpdate`, { location, prevLocation })
43c43
< const onRouteUpdate = location => {
---
> const onRouteUpdate = (location, prevLocation) => {
45c45
<     apiRunner(`onRouteUpdate`, { location })
---
>     apiRunner(`onRouteUpdate`, { location, prevLocation })
136c136
<     onPreRouteUpdate(props.location)
---
>     onPreRouteUpdate(props.location, null)
140c140
<     onRouteUpdate(this.props.location)
---
>     onRouteUpdate(this.props.location, null)
145c145
<       onRouteUpdate(this.props.location)
---
>       onRouteUpdate(this.props.location, prevProps.location)
151c151
<       onPreRouteUpdate(this.props.location)
---
>       onPreRouteUpdate(this.props.location, prevProps.location)
diff 23.cache/static-entry.js .cache/static-entry.js
55c55,59
<     <meta name="generator" content={`Gatsby ${gatsbyVersion}`} />,
---
>     <meta
>       name="generator"
>       content={`Gatsby ${gatsbyVersion}`}
>       key={`generator-${gatsbyVersion}`}
>     />,
354,360c358,366
<   const bodyScripts = scripts.filter(s => s.rel !== `prefetch`).map(s => {
<     const scriptPath = `${__PATH_PREFIX__}/${JSON.stringify(s.name).slice(
<       1,
<       -1
<     )}`
<     return <script key={scriptPath} src={scriptPath} async />
<   })
---
>   const bodyScripts = scripts
>     .filter(s => s.rel !== `prefetch`)
>     .map(s => {
>       const scriptPath = `${__PATH_PREFIX__}/${JSON.stringify(s.name).slice(
>         1,
>         -1
>       )}`
>       return <script key={scriptPath} src={scriptPath} async />
>     })

Различия после средства обновления и запуска новой сборки @madelyneriksen

patch-package
--- a/node_modules/gatsby/dist/internal-plugins/query-runner/pages-writer.js
+++ b/node_modules/gatsby/dist/internal-plugins/query-runner/pages-writer.js
@@ -88,9 +88,9 @@ const preferDefault = m => m && m.default || m
     let asyncRequires = `// prefer default export if available
 const preferDefault = m => m && m.default || m
 \n`;
-    asyncRequires += `exports.components = {\n${components.map(c => `  "${c.componentChunkName}": () => import("${(0, _path.joinPath)(c.component)}" /* webpackChunkName: "${c.componentChunkName}" */)`).join(`,\n`)}
+    asyncRequires += `exports.components = {\n${components.map(c => `  "${c.componentChunkName}": () => require("${(0, _path.joinPath)(c.component)}" /* webpackChunkName: "${c.componentChunkName}" */)`).join(`,\n`)}
 }\n\n`;
-    asyncRequires += `exports.data = () => import(/* webpackChunkName: "pages-manifest" */ "${(0, _path.joinPath)(program.directory, `.cache`, `data.json`)}")\n\n`;
+    asyncRequires += `exports.data = () => require(/* webpackChunkName: "pages-manifest" */ "${(0, _path.joinPath)(program.directory, `.cache`, `data.json`)}")\n\n`;

     const writeAndMove = (file, data) => {
       const destination = (0, _path.joinPath)(program.directory, `.cache`, file);

Это должно работать для .98

Возможно, я ошибаюсь, изменение приводит к сбою тестов https://github.com/gatsbyjs/gatsby/pull/11331

Пока не знаю почему.

Значит, это все равно не работает?

Сценарий сборки успешно с предложенным мной изменением. Но я не уверен, что это правильное решение. Поэтому, пожалуйста, проверьте и просмотрите его.

Хм, или это из-за нового пресета?
https://github.com/gatsbyjs/gatsby/commit/69faca0bff0e2c04e6b3be50bba087284c3dbf6b#diff -a30bb413b08d8091d9187909b256c943

Правильный ли массив плагинов?

Возникает ли проблема и в новом новом проекте Gatsby, и можно ли ее воспроизвести с помощью тестов CI?

Я npm update и проблема исчезла

Предоставьте список установленных зависимостей (до и после обновления).

@DanielRuf , я не могу воспроизвести это, думаю, это была случайность, я все еще получаю ошибку.

Обходной путь - установить зависимости с помощью Yarn вместо npm, который, кажется, работает после импорта файла блокировки npm.

Вы можете найти мои npm ls с gatsby v2.0.91 (сборка прошла успешно) и v2.0.93 (сборка не удалась) здесь: https://gist.github.com/cyrildurand/f4b70abff19288117ea3996500532774

У меня все еще проблема с gatsby 2.0.103

Вы тоже пытались установить зависимости с помощью yarn ?

@cyrildurand
Сталкивались ли вы с этой ошибкой при установке npm ?
2019-01-29 4 50 27
У меня тоже была такая же проблема, но обновление версии arcon до 6.0 прошло хорошо.

Вы столкнулись с этой ошибкой при установке npm

Это просто предупреждение и не связано с проблемой Гэтсби.

Та же ошибка после установки acorn

он работает с yarn . Я обновил суть выходом yarn list

Такая же ошибка после установки желудя

Какая ошибка?

Я попытался обновить acorn , предложенный @ seonim-ryu, и попытаться запустить gatsby build и у меня возникла такая же ошибка "неожиданного токена" (из первого сообщения этой проблемы)

Если я использую пряжу, проблема исчезнет, ​​команда gatsby build завершится успешно.

То же происходит и с предыдущими выпусками Acorn? Или дело не в этом?

Вы пробовали предложенное мной исправление? Не уверен, что это что-нибудь сломает.

Это также не удалось с предыдущей версией acorn, я не думаю, что это связано с этим.

Теперь, когда я устанавливаю зависимости, он работает, и я не уверен, как применить предложенное вами исправление.

Перейдите в node_modules / gatsby / dist / internal-plugins / query-runner / pages-writer.js и измените два import( на require( , также см. Https://github.com/gatsbyjs / gatsby / issues / 11198 # issuecomment -457915157

Работает с исправлением

Что-нибудь сломалось из-за исправления? Неудачные сборки CI выглядят не очень хорошо.

Возможно, отдельная проблема, но я получил аналогичную ошибку после обновления до последней версии Gatsby (2.0.106) и добавления страницы 404 в соответствии с документацией ('src / pages / 404.js'). Разработка прошла нормально, но сборка не удалась.

Перемещение страницы 404 в отдельную папку ('src / pages / 404 / index.js') устранило ошибку на моей стороне и работает должным образом (локально и при развертывании в Netlify).

Я исправил проблему, удалив мой файл package-lock.json и запустив npm install . Новый сгенерированный файл package-lock.json имел много различий.
Не знаю точно, что здесь происходит.

Я сталкиваюсь с одними и теми же проблемами на нескольких разных сайтах. Некоторые с точно такими же зависимостями и версиями ... один попадет в ошибку, другой нет. Это началось около 2.0.98, я думаю, и до сих пор с 2.0.106. Я пробовал удалить node_modules, .cache и общие папки, но это тоже не помогло. Только при сборке, а не при разработке.

@cyrildurand
Я переименовал package-lock.json во что-то другое и npm install ed все, но снова получил:

error Generating JavaScript bundles failed


  Error: ./.cache/async-requires.js 8:11
  Module parse failed: Unexpected token (8:11)
  You may need an appropriate loader to handle this file type.
  | exports.components = {
  |   "component---node-modules-gatsby-plugin-offline-app-shell-js": function componentNodeModulesGatsbyPluginOfflineAppShellJs() {
  >     return import("/home/foldername/abcrypto/node_modules/gatsby-plugin-offline/app-shell.js"
  |     /* webpackChunkName: "component---node-modules-gatsby-plugin-offline-app-shell-js" */
  |     );
   @ ./.cache/production-app.js 18:0-45 21:23-36 26:23-36

Вы очистили папку node_modules ?

Как ты это делаешь? :(

npm prune node_modules ?

Или удалить все вручную внутри папки node_modules?

Изменить: я переименовал папку node_modules, и теперь она работает: +1:

  • Переименуйте package-lock.json во что-нибудь другое
  • Переименуйте папку node_modules во что-нибудь другое
  • npm install в основной папке

Спасибо @cyrildurand
Отредактировано после предложения @DanielRuf

Просто переименуйте его, чтобы иметь резервную копию.

Значит, это действительно проблема с устаревшей зависимостью?

Я удалял модули узлов несколько раз, и это никогда не исправлялось для меня. единственное, что сработало, - это пряжа или файл патча выше.

@krazik а вы

да

просто чтобы убедиться, что я попробовал еще раз, и удалив оба, я могу обойти ошибку выше, но теперь сталкиваюсь с

Ошибка: не удается найти модуль core-js / modules / es6.regexp.to-string
Ошибка: не удается найти модуль core-js / modules / es6.regexp.to-string

как для сборки, так и для разработки.

error Cannot find module 'core-js/modules/es6.regexp.to-string'


  Error: Cannot find module 'core-js/modules/es6.regexp.to-string'

  - loader.js:611 Function.Module._resolveFilename
    internal/modules/cjs/loader.js:611:15

  - loader.js:537 Function.Module._load
    internal/modules/cjs/loader.js:537:25

  - loader.js:665 Module.require
    internal/modules/cjs/loader.js:665:17

  - helpers.js:20 require
    internal/modules/cjs/helpers.js:20:18

  - render-page.js:3 webpackUniversalModuleDefinition
    /Users/rylanhazelton/dev/Admin/public/render-page.js:3:170

  - render-page.js:10 Object.<anonymous>
    /Users/rylanhazelton/dev/Admin/public/render-page.js:10:3

  - loader.js:736 Module._compile
    internal/modules/cjs/loader.js:736:30

  - loader.js:747 Object.Module._extensions..js
    internal/modules/cjs/loader.js:747:10

  - loader.js:628 Module.load
    internal/modules/cjs/loader.js:628:32

  - loader.js:568 tryModuleLoad
    internal/modules/cjs/loader.js:568:12

  - loader.js:560 Function.Module._load
    internal/modules/cjs/loader.js:560:3

  - loader.js:665 Module.require
    internal/modules/cjs/loader.js:665:17

  - helpers.js:20 require
    internal/modules/cjs/helpers.js:20:18

  - worker.js:32 Promise
    [Admin]/[gatsby]/dist/utils/worker.js:32:35

  - debuggability.js:313 Promise._execute
    [Admin]/[bluebird]/js/release/debuggability.js:313:9

  - promise.js:483 Promise._resolveFromExecutor
    [Admin]/[bluebird]/js/release/promise.js:483:18


error UNHANDLED REJECTION


  Error: Cannot find module 'core-js/modules/es6.regexp.to-string'

  - loader.js:611 Function.Module._resolveFilename
    internal/modules/cjs/loader.js:611:15

  - loader.js:537 Function.Module._load
    internal/modules/cjs/loader.js:537:25

  - loader.js:665 Module.require
    internal/modules/cjs/loader.js:665:17

  - helpers.js:20 require
    internal/modules/cjs/helpers.js:20:18

  - render-page.js:3 webpackUniversalModuleDefinition
    /Users/rylanhazelton/dev/Admin/public/render-page.js:3:170

  - render-page.js:10 Object.<anonymous>
    /Users/rylanhazelton/dev/Admin/public/render-page.js:10:3

  - loader.js:736 Module._compile
    internal/modules/cjs/loader.js:736:30

  - loader.js:747 Object.Module._extensions..js
    internal/modules/cjs/loader.js:747:10

  - loader.js:628 Module.load
    internal/modules/cjs/loader.js:628:32

  - loader.js:568 tryModuleLoad
    internal/modules/cjs/loader.js:568:12

  - loader.js:560 Function.Module._load
    internal/modules/cjs/loader.js:560:3

  - loader.js:665 Module.require
    internal/modules/cjs/loader.js:665:17

  - helpers.js:20 require
    internal/modules/cjs/helpers.js:20:18

  - worker.js:32 Promise
    [Admin]/[gatsby]/dist/utils/worker.js:32:35

  - debuggability.js:313 Promise._execute
    [Admin]/[bluebird]/js/release/debuggability.js:313:9

  - promise.js:483 Promise._resolveFromExecutor
    [Admin]/[bluebird]/js/release/promise.js:483:18

Попробуйте закрыть редактор, удалить .cache, public, node_modules и package-lock.json. Затем выполните установку npm.

Я почти уверен, что это просто какое-то забавное решение пакета от NPM.

Мне удалось разобраться с зависимостями на моих сайтах, удалив файл блокировки и node_modules . Мне не удалось воспроизвести его за пределами взломанных сайтов.

После удаления моих package-lock.json , node_modules и установки с использованием yarn меня возникла еще одна ошибка: terser-webpack-plugin cannot call minify of undefined (что-то в этом роде). Это исправило это для меня.

Я думаю, что экосистема Node.js действительно самая быстрая из всех ;-)

Последнее обновление Terser (выпущенное час назад) ломает этот плагин.

Итак, это новая проблема (в зависимости).

Я могу подтвердить, что это две разные проблемы, я столкнулся с обеими: https://github.com/gr2m/octokit-rest-documentation/issues/24

Ошибка Terser происходит из этих строк

  const {
    error,
    map,
    code,
    warnings
  } = _terser.default.minify({
    [file]: input
  }, terserOptions);

Это работает, если вы замените _terser.default.minify только на _terser.minify

Я также испытываю эту проблему в своих сборках Travis CI. Даже использование yarn не исправит. Любой быстрый патч, который я мог бы использовать, пока не выйдет нужное исправление? благодаря

Ошибка Terser должна быть решена сейчас

terser-webpack-plugin был исправлен, и мы опубликовали 2.0.112 с новой версией terser-webpack-plugin

Я не уверен, связано ли это, но не могли бы вы попробовать обновить?

А пока, @DanielRuf @dlindahl, не могли бы вы дать ссылку на минимальное воспроизведение проблемы, которую вы видите?

@sidharthachatterjee Я могу подтвердить, обновление до определенного [email protected] решило мою проблему на Gitlab CI.

Ошибка Terser должна быть решена сейчас

подтверждено.

Давай закроем это. Прокомментируйте, если мы можем помочь в дальнейшем или это _не подтверждено_, чтобы исправить.

Спасибо всем!

Исходная ошибка, из-за которой была открыта эта проблема, остается:

Error: ./.cache/async-requires.js 8:11
Module parse failed: Unexpected token (8:11)

@ gr2m не могли бы вы предоставить репродукцию?

В любом случае - открою заново, спасибо!

У меня была такая же проблема.
Ошибка синтаксического анализа модуля: неожиданный токен (8:11)
Для работы с этим типом файлов вам может потребоваться соответствующий загрузчик.

Исправление пряжи сработало для меня.

Удаление .cache / public / node_modules не помогло.

Проблема началась для меня после запуска обновления npm.

Такая же проблема здесь.

    "@magicsoup.io/stock": "0.0.11",
    "@zauberware/react-scroll-to": "^0.1.1",
    "@zauberware/react-svg-assets": "^0.10.2",
    "babel-plugin-styled-components": "^1.10.0",
    "gatsby": "^2.0.115",
    "gatsby-image": "^2.0.29",
    "gatsby-plugin-htaccess": "^1.0.8",
    "gatsby-plugin-manifest": "^2.0.17",
    "gatsby-plugin-offline": "^2.0.22",
    "gatsby-plugin-react-helmet": "^3.0.6",
    "gatsby-plugin-sharp": "^2.0.20",
    "gatsby-plugin-sitemap": "^2.0.5",
    "gatsby-plugin-styled-components": "^3.0.5",
    "gatsby-plugin-web-font-loader": "^1.0.4",
    "gatsby-source-filesystem": "^2.0.20",
    "gatsby-transformer-json": "^2.1.8",
    "gatsby-transformer-remark": "^2.2.4",
    "gatsby-transformer-sharp": "^2.1.13",
    "marksy": "^6.1.0",
    "prop-types": "^15.6.2",
    "react": "^16.7.0",
    "react-dom": "^16.7.0",
    "react-helmet": "^5.2.0",
    "react-i18next": "^10.0.0",
    "react-obfuscate": "^3.0.0",
    "react-slick": "^0.23.2",
    "styled-components": "^4.1.3",
    "styled-normalize": "^8.0.6",
    "styled-system": "^3.2.1",

Пытается загрузить шаблон из src / templates

Error: ./.cache/async-requires.js 8:11
  Module parse failed: Unexpected token (8:11)
  You may need an appropriate loader to handle this file type.
  | exports.components = {
  |   "component---src-templates-markdown-template-js": function componentSrcTemplatesMarkdownTemplateJs() {
  >     return import("/Users/simon/workspaces/web/altstadtdomizil/src/templates/markdownTemplate.js"
  |     /* webpackChunkName: "component---src-templates-markdown-template-js" */
  |     );
   @ ./.cache/production-app.js 18:0-45 21:23-36 26:23-36

gatsby-node.js

exports.createPages = ({ actions, graphql }) => {
  const { createPage } = actions

  const blogPostTemplate = path.resolve(`src/templates/markdownTemplate.js`)

  return graphql(`
    {
      allMarkdownRemark(
        sort: { order: DESC, fields: [frontmatter___title] }
        limit: 1000
      ) {
        edges {
          node {
            frontmatter {
              path
            }
          }
        }
      }
    }
  `).then(result => {
    if (result.errors) {
      return Promise.reject(result.errors)
    }

    result.data.allMarkdownRemark.edges.forEach(({ node }) => {
      createPage({
        path: node.frontmatter.path,
        component: blogPostTemplate,
        context: {}, // additional data can be passed via context
      })
    })
  })
}

Если я закомментирую gatsby-node.js, я получаю такую ​​ошибку:

  Error: ./.cache/async-requires.js 8:11
  Module parse failed: Unexpected token (8:11)
  You may need an appropriate loader to handle this file type.
  | exports.components = {
  |   "component---src-pages-404-js": function componentSrcPages404Js() {
  >     return import("/Users/simon/workspaces/web/altstadtdomizil/src/pages/404.js"
  |     /* webpackChunkName: "component---src-pages-404-js" */
  |     );
   @ ./.cache/production-app.js 18:0-45 21:23-36 26:23-36

вернуть импорт (

См. Другие комментарии.

Это отображается в значках / щитах # 2947 при обновлении с 2.0.115 до 2.0.116 или 2.0.117.

Недавно я объединил значки / щиты # 2949, которые обновили babel-preset-gatsby с 0.1.6 до 0.1.7, хотя я пробовал взломать версию на более раннюю версию, и это не устранило проблему.

Проблема была обнаружена в CI и постоянно там проявляется. Наш CI не сохраняет .cache , так что это можно исключить.

  Error: ./.cache/async-requires.js 8:11
  Module parse failed: Unexpected token (8:11)
  You may need an appropriate loader to handle this file type.
  | exports.components = {
  |   "component---frontend-components-main-js": function componentFrontendCompo  nentsMainJs() {
  >     return import("/home/circleci/project/frontend/components/main.js"
  |     /* webpackChunkName: "component---frontend-components-main-js" */
  |     );
   @ ./.cache/production-app.js 18:0-45 21:23-36 26:23-36

https://circleci.com/gh/badges/shields/39885

Думаю, проблема в этом: webpack / webpack # 8656.

Добавлено: соответствие симптомов и совпадение сроков.

screen shot 2019-02-07 at 9 17 12 pm

screen shot 2019-02-07 at 9 17 19 pm

@paulmelnikow хороший улов. Вот почему я рекомендую использовать CJS, если нам не нужно использовать ESM - он все равно не на 100% надежен в сборщиках. И другой способ все равно должен работать.

Итак, закрепление веб-пакета в корневом package.json должно работать?

И это также объясняет, почему SemVer в экосистеме JS полностью сломан, imho. Автоматическое обновление (глубоких) deps, потому что файлы блокировки работают только на корневом уровне.

Чтобы было ясно, acorn и способ, которым npm разрешает deptree, являются проблемой и причиной.

https://github.com/webpack/webpack/issues/8656#issuecomment -456010969

Я могу воспроизвести это (еще одна причина, по которой мы все еще используем пряжу на работе).

Если быть точным, это проблема npm.

https://npm.community/t/packages-with-peerdependencies-are-incorrectly-hoisted/4794/4

https://npm.community/t/release-npm-6-8-0-next-0/5058

Решение: установите последнюю версию npm.

Я не уверен, что согласен с такой оценкой. Это может проявляться в npm, а не в yarn из-за различий в способах разрешения, однако 4.29.3 - это совершенно правильная версия для установки, когда пакет объявил зависимость от ^ 4.12.0. Вот что означает каретка. Если Гэтсби хочет заблокировать определенную версию, это можно сделать, и в этом случае npm выполнит это.

Webpack - это зависимость Gatsby, а не одноранговая зависимость.

Проблема заключалась в подъеме в npm (отличается в Yarn), и из-за этого не удалось правильно загрузить acorn . См. Сообщение сообщества Тобиаса и связанный комментарий.

Я чувствую, что мне нужно, чтобы вы объяснили это лучше. Я просмотрел эти темы, но не вижу, как это применимо здесь.

Я не знаю, что вызывает ошибку в Webpack; однако, если мы согласны с тем, что Гэтсби не следует использовать 4.29.3, необходимо изменить зависимость каретки.

Он работает с пряжей, это просто проблема с npm, в сочетании с конкретными зависимостями и вычислением deptree. См. PR Тобиаса.

См. Https://github.com/npm/cli/pull/147/files

Aiiiee gotcha. Это ошибка зависимостей одноранговых узлов в npm, из-за которой webpack 4.29 работает некорректно.

Что мы _ можем_ предотвратить, так это установку webpack 4.29. И я не уверен, что есть простой способ заблокировать версию webpack конечным пользователем. npm не предоставляет способа сделать это, поэтому пользователям придется использовать что-то вроде стороннего инструмента npm-force-resolution .

См. Npm / cli # 152; не похоже, что мы можем ожидать быстрого разрешения.

Теперь, когда 2.0.118 поставляет пластырь, пользователи npm должны быть в порядке и, очевидно, не могут использовать webpack 4.29.x в любом случае.

Правильно ли я, что пользователи yarn могут использовать resolutions чтобы заставить Гэтсби использовать более позднюю версию, выходящую за пределы допустимого диапазона, если они хотят?

@paulmelnikow правильно - но на самом деле в этом нет необходимости, и я не уверен, что в этом есть особая необходимая польза.

Мы обновим закрепленную зависимость, как только сможем (теперь после проблемы с npm), так что это должно быть всего лишь всплеском для пользователей npm в частности.

Спасибо за исправление!

_Now_ Я думаю, что могу закрыть это :)

Подтверждено исправление с выпуском 2.0.118!

Это было потрясающе. Спасибо всем за прекрасную работу!

Всем привет! Интересно, могли бы вы, ребята, попробовать npm install gatsby@webpack-acorn . Мы хотим обновить веб-пакет до последней версии, но не уверены, что это по-прежнему проблема. Я не мог воспроизвести это, но мы скорее хотим перестраховаться, чем сожалеть.

Привет @wardpeet! Спасибо, что обратились к нам.

Создал ветку здесь: значки / щиты # 3572

Похоже, это все еще проблема: https://circleci.com/gh/badges/shields/57401

Для локального воспроизведения нужно клонировать эту ветвь и запустить npm ci за которым следует npm run build . Не стесняйтесь делать это, если хотите, или свяжитесь со мной, и я могу обновить ветку PR.

@paulmelnikow большое спасибо! Не могли бы вы также сказать мне, какую версию node и npm вы используете, чтобы я мог запустить ее с вашей настройкой, если она мне подходит.

Вот что у меня локально:

~/c/shields (bump-webpack-rc|✔) $ node --version
v10.13.0
~/c/shields (bump-webpack-rc|✔) $ npm --version
6.9.0

В CI это также происходит в Node 8 (не уверен, точная версия npm).

Проблема воспроизводится в обеих средах.

Спасибо, что изучили это!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги