Web build inserting incorrect path

I’m using expo version 6.0.1

When I use

expo build:web 

my /web-build/manifest.json ends up having /web-build/ at the beginning of every line. This also appears in other files. That reference results in a 404 error since it’s already in the web-build folder.

Prior to upgrading from 5.5.1, this was working fine.

The workaround I’m using is to search and replace /web-build/ for / anywhere in the project.

Currently this is building and deploying fine, but it would be nice if it could be fixed in an upcoming release.

Hey @watx,

I tried reproducing and running the command works fine on my end. There were no /web-build/ at the beginning of every line in the json file. Can you please share a reproducible example?

Greetings @amanhimself,

I tried building a new project to reproduce this, but the new project works fine.

My steps to try and reproduce:
npx ignite-cli new TestApp --expo
cd TestApp
expo build:web
npx serve web-build

This works fine in the TestApp.

In my other app I’m developing, I also started with an Ignite Expo app, but this was months ago when my Expo version was at 5.5.1. I recently upgraded to 6.0.1 using
npm install -g expo-cli

Prior to the upgrade, my web builds worked as expected. Now, they prepend /web-build/ onto each line in asset-manifest.json like so:

{
  "files": {
    "app.js": "/web-build/static/js/app.2d025a5d.chunk.js",
    "app.js.map": "/web-build/static/js/app.2d025a5d.chunk.js.map",
    "runtime~app.js": "/web-build/static/js/runtime~app.0960814e.js",
    "runtime~app.js.map": "/web-build/static/js/runtime~app.0960814e.js.map",
    "static/js/2.24fa30ba.chunk.js": "/web-build/static/js/2.24fa30ba.chunk.js",
    "static/js/2.24fa30ba.chunk.js.map": "/web-build/static/js/2.24fa30ba.chunk.js.map",
    "fonts/AntDesign.ttf": "/web-build/./fonts/AntDesign.ttf",
    "fonts/Entypo.ttf": "/web-build/./fonts/Entypo.ttf",
    "fonts/Feather.ttf": "/web-build/./fonts/Feather.ttf",
    "fonts/FontAwesome.ttf": "/web-build/./fonts/FontAwesome.ttf",
    "fonts/FontAwesome5_Brands.ttf": "/web-build/./fonts/FontAwesome5_Brands.ttf",
    "fonts/FontAwesome5_Solid.ttf": "/web-build/./fonts/FontAwesome5_Solid.ttf",
    "fonts/Fontisto.ttf": "/web-build/./fonts/Fontisto.ttf",
    "fonts/Foundation.ttf": "/web-build/./fonts/Foundation.ttf",
    "fonts/Ionicons.ttf": "/web-build/./fonts/Ionicons.ttf",
    "fonts/MaterialCommunityIcons.ttf": "/web-build/./fonts/MaterialCommunityIcons.ttf",
    "fonts/MaterialIcons.ttf": "/web-build/./fonts/MaterialIcons.ttf",
    "fonts/SimpleLineIcons.ttf": "/web-build/./fonts/SimpleLineIcons.ttf",
    "favicon-16.png": "/web-build/favicon-16.png",
    "favicon-32.png": "/web-build/favicon-32.png",
    "favicon.ico": "/web-build/favicon.ico",
    "index.html": "/web-build/index.html",
    "manifest.json": "/web-build/manifest.json",
    "serve.json": "/web-build/serve.json",
    "static/js/2.24fa30ba.chunk.js.LICENSE.txt": "/web-build/static/js/2.24fa30ba.chunk.js.LICENSE.txt",
    "static/media/bg.png": "/web-build/static/media/bg.2803d498.png",
    "static/media/bowser.png": "/web-build/static/media/bowser.86f4dff7.png",
    "static/media/ladybug.png": "/web-build/static/media/ladybug.1f3a56e2.png",
    "static/media/logo-ignite.png": "/web-build/static/media/logo-ignite.4b94d581.png"
  },
  "entrypoints": [
    "static/js/runtime~app.0960814e.js",
    "static/js/2.24fa30ba.chunk.js",
    "static/js/app.2d025a5d.chunk.js"
  ]
}

My asset-manifest.json for the TestApp looks like this:

{
  "files": {
    "app.js": "/static/js/app.35a28e80.chunk.js",
    "app.js.map": "/static/js/app.35a28e80.chunk.js.map",
    "runtime~app.js": "/static/js/runtime~app.27401809.js",
    "runtime~app.js.map": "/static/js/runtime~app.27401809.js.map",
    "static/js/2.bd2e6a6a.chunk.js": "/static/js/2.bd2e6a6a.chunk.js",
    "static/js/2.bd2e6a6a.chunk.js.map": "/static/js/2.bd2e6a6a.chunk.js.map",
    "favicon-16.png": "/favicon-16.png",
    "favicon-32.png": "/favicon-32.png",
    "favicon.ico": "/favicon.ico",
    "index.html": "/index.html",
    "manifest.json": "/manifest.json",
    "serve.json": "/serve.json",
    "static/js/2.bd2e6a6a.chunk.js.LICENSE.txt": "/static/js/2.bd2e6a6a.chunk.js.LICENSE.txt",
    "static/media/bg.png": "/static/media/bg.7da0a45a.png",
    "static/media/bowser.png": "/static/media/bowser.4ba9aedf.png",
    "static/media/ladybug.png": "/static/media/ladybug.1e6045ac.png",
    "static/media/logo-ignite.png": "/static/media/logo-ignite.5c0bc1b0.png"
  },
  "entrypoints": [
    "static/js/runtime~app.27401809.js",
    "static/js/2.bd2e6a6a.chunk.js",
    "static/js/app.35a28e80.chunk.js"
  ]
}

For what it’s worth, when I web-build the TestApp, it looks like this:
Screen Shot 2022-08-06 at 9.43.06 AM

Both apps are using webpack 4.

The webpack-config for my main app is:

const createExpoWebpackConfigAsync = require("@expo/webpack-config")

// Expo CLI will await this method so you can optionally return a promise.
module.exports = async function (env, argv) {
  const config = await createExpoWebpackConfigAsync(env, argv)
  // If you want to add a new alias to the config.
  // config.resolve.alias["moduleA"] = "moduleB"

  // Maybe you want to turn off compression in dev mode.
  if (config.mode === "development") {
    config.devServer.compress = false
  }

  // Or prevent minimizing the bundle when you build.
  // if (config.mode === "production") {
  //   config.optimization.minimize = false
  // }

  // Finally return the new config for the CLI to use.
  return config
}

When I web-build my main app on the same machine, it looks like this:
Screen Shot 2022-08-06 at 9.48.34 AM

(Forum would only let me post one image in my previous reply)

The version you are referring to here is Expo CLI version (Expo CLI - Expo Documentation). What’s the Expo SDK version on your project that you are facing the issue on? You can find the SDK version in package.json file → "dependencies".

There wasn’t an entry in package.json, but in yarn.lock I have:
@expo/sdk-runtime-versions@^1.0.0

Actually, going through expo upgrade I found the version:

You are currently using SDK 45.0.0. Would you like to update to the
latest version, 46.0.0?

I’ll upgrade to 46 and see if it works better.

I’m not familiar with Ignite, so maybe somehow it does something weird with the dependencies :slight_smile: but @expo/sdk-runtime-version is not what Aman was asking about.

A normal Expo app has a dependency called "expo". e.g.:

  "dependencies": {
    "expo": "^45.0.0",
    "expo-status-bar": "~1.3.0",
    "react": "17.0.2",
    "react-dom": "17.0.2",
    "react-native": "0.68.2",
    "react-native-web": "0.17.7"
  },

The above app is using Expo SDK 45.