【问题标题】:Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main resolved in /app/node_modules/@babel/helper-compilation-targets/package.json错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main 在 /app/node_modules/@babel/helper-compilation-targets/package.json 中解析
【发布时间】:2020-09-26 12:26:50
【问题描述】:

我在 travis CI 管道中构建我的 nuxt 图像时遇到问题。我的本地环境是 ubuntu 18.04 - docker 版本 19.03.11 docker-compose 版本 1.24.1 我能够在本地构建和运行我的图像,但是在 travis CI 上我收到以下错误

Step 5/7 : RUN npm run build
 ---> Running in d3e9433b79f0
> nuxt_app@1.0.0 build /app
> nuxt build
ℹ Production build
✔ Builder initialized
✔ Nuxt files generated
ℹ Compiling Client
ℹ Starting type checking service...
ℹ Using 1 worker with 2048MB memory limit
✔ Client: Compiled with some errors in 1.62s
Hash: 1b9cf81215d31b9f0ed3
Version: webpack 4.43.0
Time: 1624ms
Built at: 06/07/2020 2:20:27 PM
                  Asset      Size  Chunks               Chunk Names
4bff68cc9fb4c003b7f2.js  1.49 KiB       1  [immutable]  runtime
b4f22db01be076446c20.js   1.4 KiB       0  [immutable]  app
Entrypoint app = 4bff68cc9fb4c003b7f2.js b4f22db01be076446c20.js
ERROR in ./.nuxt/client.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main resolved in /app/node_modules/@babel/helper-compilation-targets/package.json
    at applyExports (internal/modules/cjs/loader.js:491:9)
    at resolveExports (internal/modules/cjs/loader.js:507:23)
    at Function.Module._findPath (internal/modules/cjs/loader.js:635:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:953:27)
    at Function.Module._load (internal/modules/cjs/loader.js:842:27)
    at Module.require (internal/modules/cjs/loader.js:1026:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/app/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Module.require (internal/modules/cjs/loader.js:1026:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/app/node_modules/@babel/preset-env/lib/index.js:11:14)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
 @ multi ./.nuxt/client.js app[0]
 FATAL  Nuxt build error
  at WebpackBundler.webpackCompile (node_modules/@nuxt/webpack/dist/webpack.js:5326:21)
  at processTicksAndRejections (internal/process/task_queues.js:97:5)
  at async WebpackBundler.build (node_modules/@nuxt/webpack/dist/webpack.js:5275:5)
  at async Builder.build (node_modules/@nuxt/builder/dist/builder.js:5598:5)
  at async Object.run (node_modules/@nuxt/cli/dist/cli-build.js:100:7)
  at async NuxtCommand.run (node_modules/@nuxt/cli/dist/cli-command.js:2575:7)

我的特拉维斯 CI

sudo: required

dist: trusty

services:
    - docker

# language: node_js
# node_js: 12

before_install:
    - sudo rm /usr/local/bin/docker-compose
    - sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    - sudo chmod +x /usr/local/bin/docker-compose
    - sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    - sudo chmod 400 -R .ops/ssh/*

# before_script:
#     - my_script

script:
    - .ops/build.sh
    - .ops/push.sh

我的 docker-compose 文件

    web:
        build:
            context: ${GITROOT:-.}
            dockerfile: Dockerfile.web
        image: moovinit_web
        container_name: moovinit_web
        command: npm start
        environment:
            WEB_PORT: ${WEB_PORT:-3200}
            API_URL: ${API_URL:-http://api:3201}
            <<: *node-common

为什么它是在我的笔记本电脑上构建的,而不是在 travis 上构建的?

【问题讨论】:

    标签: node.js docker travis-ci nuxt.js


    【解决方案1】:

    使用npm update 为我修复了同样的错误。

    【讨论】:

    • 更新@babel/ 模块就足够了。为我和some open source 工作。
    • 这为我解决了这个问题,我用 discord.js 解决了这个问题。
    【解决方案2】:

    我遇到了类似的问题。 npm install @babel/helper-compilation-targets --save-dev 解决了这种情况

    【讨论】:

    • 我在 Heroku 中构建我的应用程序时遇到了这个问题,这为我解决了这个问题
    • 上传 netlify 时出错,运行 npm install @babel/helper-compilation-targets --save-dev 即可。
    【解决方案3】:

    我遇到了这个问题,我通过删除锁定文件然后重新安装所有东西来解决它。

    这对每个人来说可能不是一个好的解决方案,但它对我有用。

    这正是我所做的。

    1. 删除锁定文件。在这种情况下,我使用的是yarn,所以我需要删除yarn.lock 文件。如果您使用的是npm the lock file,则为package-lock.json
    # for yarn user
    rm yarn.lock
    
    # for npm user
    rm package-lock.json
    
    1. 然后我重新安装所有依赖项。
    # for yarn user
    yarn install
    
    # for npm user
    npm install
    

    【讨论】:

    • 您永远不应该删除锁定文件,它用于与安全相关的重要目的。深度更新命令会是更好的选择。
    • @SlavaFominII 是的,这就是为什么放免责声明This is probably not a good solution for everyone but it works for me.
    • 它对我有用
    【解决方案4】:

    UUID npm 模块导致了这个错误,

    // const uuidv4 = require('uuid/v4'); // OLD
    const { v4: uuidv4 } = require('uuid'); // NEW
    

    删除 node_modules,package-lock.josn 没有帮助

    【讨论】:

    • 这不是问题的正确答案。如果您还没有答案,您可以开始评论。
    • 好吧,我到达这里是因为同样的错误,这就是解决我的问题的原因。万一其他人由于这个原因面临同样的问题可能会得到帮助。
    • @paradocslover,感谢您的指点,当我遇到同样的问题时,果然没有出现答案。
    • 我也得到了同样的答案,但出现了同样的错误。
    【解决方案5】:

    对我有用的解决方案就是更新节点。

    例如,使用节点 12.22.0 和 14.17.4 都有效。请注意,节点版本 13.x 根本无法使用。

    我也遇到了这个问题,发现这个错误似乎是特定于某些节点 js 版本的。

    • 节点 13.14.0、节点 12.18.4、12.19.0、12.19.1 显示错误:ERR_PACKAGE_PATH_NOT_EXPORTED
    • 使用节点 12.20.0,节点 14.17.4,不会抛出错误。

    问题是已经创建了一个新的导出系统,定义如下:

    https://github.com/nodejs/modules/issues/535

    此功能允许使用 glob 在包中定义可能的允许要求,如下所示:

      "exports": {
        ".": {
          "import": "./dist/pako.esm.mjs",
          "require": "./index.js"
        },
        "./package.json": "./package.json",
        "./dist/*": "./dist/*",
        "./lib/*": "./lib/*",
        "./lib/zlib/*": "./lib/zlib/*",
        "./lib/utils/*": "./lib/utils/*"
      },
    

    可以在此处找到此功能的拉取请求:https://github.com/nodejs/modules/issues/535

    现在,如果您在导出文件中包含使用此新“glob”功能的包,如果您需要该特定文件,它可能会失败。

    【讨论】:

      【解决方案6】:

      npm update &amp;&amp; npm audit fix --force修复

      【讨论】:

      • 这解决了我的问题。我认为问题在于不兼容的 NextJS 版本。当我克隆 NextJS 教程项目并尝试运行 npm run dev 时发生了这个问题
      • 我的 NextJS 应用程序也遇到了同样的问题。 npm update --force 已修复。
      【解决方案7】:

      快速修复:

      对于纱线

      yarn upgrade
      

      对于 npm

      npm update
      

      【讨论】:

      • yarn update 为我完成了这项工作,谢谢
      【解决方案8】:

      为我修复了执行以下命令:

      升级 Node.js

      nvm 安装 16 非虚拟机使用 16 节点-v

      安装纱线

      卷曲 -o- -L https://yarnpkg.com/install.sh |重击 纱线-v

      纱线用户

      rm yarn.lock

      纱线用户

      纱线安装

      【讨论】:

      • 请正确格式化答案并删除过多的标题使用
      • nvm install 16 nvm use 16 node -v 为我解决了这个问题
      猜你喜欢
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 2021-12-10
      • 2021-12-31
      • 2021-01-05
      • 2020-07-30
      • 2020-10-14
      相关资源
      最近更新 更多