wasmerio / wasmer-js

Monorepo for Javascript WebAssembly packages by Wasmer
https://wasmerio.github.io/wasmer-js/
MIT License
913 stars 81 forks source link

ERR_PACKAGE_PATH_NOT_EXPORTED #280

Closed Antony74 closed 8 months ago

Antony74 commented 2 years ago

I'm afraid I'm getting errors when I npm run dev while following the instructions in the README. I've seen similar when I've tried this on Mac and Windows too, but I'll show you the containerised version. Am I doing something wrong please, or is this repo somehow broken right now?

> @wasmer/wasmer-js@0.0.1 dev /work/wasmer-js
> run-s lerna:build:wasm-transformer dev:serve

> @wasmer/wasmer-js@0.0.1 lerna:build:wasm-transformer /work/wasmer-js
> lerna run --scope @wasmer/wasm-transformer build --stream

lerna notice cli v3.16.4
lerna info filter [ '@wasmer/wasm-transformer' ]
lerna info Executing command in 1 package: "npm run build"
@wasmer/wasm-transformer: > @wasmer/wasm-transformer@0.12.0 build /work/wasmer-js/packages/wasm-transformer
@wasmer/wasm-transformer: > run-s build:prod build:copy:wasm-pack build:copy:wasm
@wasmer/wasm-transformer: > @wasmer/wasm-transformer@0.12.0 build:prod /work/wasmer-js/packages/wasm-transformer
@wasmer/wasm-transformer: > rollup -c --environment PROD
@wasmer/wasm-transformer: loaded rollup.config.js with warnings
@wasmer/wasm-transformer: (!) Unused external imports
@wasmer/wasm-transformer: default imported from external module '@ampproject/rollup-plugin-closure-compiler' but never used
@wasmer/wasm-transformer: default imported from external module '/work/wasmer-js/packages/wasm-transformer/package.json' but never used
@wasmer/wasm-transformer: ./src/unoptimized.ts → lib/unoptimized/wasm-transformer.esm.js...
@wasmer/wasm-transformer: Created bundle wasm-transformer.esm.js: 171.09 kB → 58.82 kB (gzip)
@wasmer/wasm-transformer: created lib/unoptimized/wasm-transformer.esm.js in 2.1s
@wasmer/wasm-transformer: ./src/unoptimized.ts → lib/unoptimized/wasm-transformer.iife.js...
@wasmer/wasm-transformer: Created bundle wasm-transformer.iife.js: 171.9 kB → 58.88 kB (gzip)
@wasmer/wasm-transformer: created lib/unoptimized/wasm-transformer.iife.js in 1s
@wasmer/wasm-transformer: ./src/optimized.ts → lib/optimized/wasm-transformer.esm.js...
@wasmer/wasm-transformer: Created bundle wasm-transformer.esm.js: 8.02 kB → 2.72 kB (gzip)
@wasmer/wasm-transformer: created lib/optimized/wasm-transformer.esm.js in 921ms
@wasmer/wasm-transformer: ./src/optimized.ts → lib/optimized/wasm-transformer.iife.js...
@wasmer/wasm-transformer: Created bundle wasm-transformer.iife.js: 8.85 kB → 2.8 kB (gzip)
@wasmer/wasm-transformer: created lib/optimized/wasm-transformer.iife.js in 758ms
@wasmer/wasm-transformer: > @wasmer/wasm-transformer@0.12.0 build:copy:wasm-pack /work/wasmer-js/packages/wasm-transformer
@wasmer/wasm-transformer: > cp -R wasm-pack lib
@wasmer/wasm-transformer: > @wasmer/wasm-transformer@0.12.0 build:copy:wasm /work/wasmer-js/packages/wasm-transformer
@wasmer/wasm-transformer: > cp wasm-pack/web/wasm_transformer_bg.wasm lib/wasm-transformer.wasm
lerna success run Ran npm script 'build' in 1 package in 7.1s:
lerna success - @wasmer/wasm-transformer

> @wasmer/wasmer-js@0.0.1 dev:serve /work/wasmer-js
> parcel examples/wasm-shell/index.html

Server running at http://localhost:1234 
⚠️  Parser "assets/JSAsset" failed to initialize when processing asset "examples/wasm-shell/worker.js". Threw the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /work/wasmer-js/node_modules/@babel/helper-compilation-targets/package.json
    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
    at resolveExports (internal/modules/cjs/loader.js:449:36)
    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/work/wasmer-js/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) falling back to RawAsset
⚠️  Parser "assets/JSAsset" failed to initialize when processing asset "examples/wasm-shell/worker.js". Threw the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /work/wasmer-js/node_modules/@babel/helper-compilation-targets/package.json
    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
    at resolveExports (internal/modules/cjs/loader.js:449:36)
    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/work/wasmer-js/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) falling back to RawAsset
⚠️  Parser "assets/JSAsset" failed to initialize when processing asset "examples/wasm-shell/index.js". Threw the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /work/wasmer-js/node_modules/@babel/helper-compilation-targets/package.json
    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
    at resolveExports (internal/modules/cjs/loader.js:449:36)
    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/work/wasmer-js/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) falling back to RawAsset
⚠️  Parser "assets/JSAsset" failed to initialize when processing asset "examples/wasm-shell/index.js". Threw the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /work/wasmer-js/node_modules/@babel/helper-compilation-targets/package.json
    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
    at resolveExports (internal/modules/cjs/loader.js:449:36)
    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/work/wasmer-js/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) falling back to RawAsset
⚠️  Parser "assets/JSAsset" failed to initialize when processing asset "examples/wasm-shell/index.js". Threw the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /work/wasmer-js/node_modules/@babel/helper-compilation-targets/package.json
    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
    at resolveExports (internal/modules/cjs/loader.js:449:36)
    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/work/wasmer-js/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) falling back to RawAsset
⚠️  Parser "assets/JSAsset" failed to initialize when processing asset "node_modules/parcel/src/builtins/css-loader.js". Threw the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /work/wasmer-js/node_modules/@babel/helper-compilation-targets/package.json
    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
    at resolveExports (internal/modules/cjs/loader.js:449:36)
    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/work/wasmer-js/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) falling back to RawAsset
⚠️  Parser "assets/JSAsset" failed to initialize when processing asset "node_modules/parcel/src/builtins/css-loader.js". Threw the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /work/wasmer-js/node_modules/@babel/helper-compilation-targets/package.json
    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
    at resolveExports (internal/modules/cjs/loader.js:449:36)
    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/work/wasmer-js/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) falling back to RawAsset
⚠️  Parser "assets/JSAsset" failed to initialize when processing asset "examples/wasm-shell/node_modules/xterm/css/xterm.js". Threw the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /work/wasmer-js/node_modules/@babel/helper-compilation-targets/package.json
    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
    at resolveExports (internal/modules/cjs/loader.js:449:36)
    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
    at Function.Module._load (internal/modules/cjs/loader.js:745:27)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/work/wasmer-js/node_modules/@babel/preset-env/lib/debug.js:8:33)
    at Module._compile (/work/wasmer-js/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) falling back to RawAsset
🚨  Cannot read property 'length' of undefined
    at lineCounter (/work/wasmer-js/node_modules/parcel/src/utils/lineCounter.js:3:30)
    at JSPackager.writeModule (/work/wasmer-js/node_modules/parcel/src/packagers/JSPackager.js:127:60)
    at async JSPackager.addAsset (/work/wasmer-js/node_modules/parcel/src/packagers/JSPackager.js:88:5)
    at async Bundle._addDeps (/work/wasmer-js/node_modules/parcel/src/Bundle.js:250:5)
    at async Bundle._package (/work/wasmer-js/node_modules/parcel/src/Bundle.js:219:7)
    at async Promise.all (index 0)
    at async Bundle.package (/work/wasmer-js/node_modules/parcel/src/Bundle.js:202:5)
    at async Promise.all (index 1)
    at async Bundle.package (/work/wasmer-js/node_modules/parcel/src/Bundle.js:202:5)
    at async Promise.all (index 1)

Dockerfile

FROM node:14-alpine
WORKDIR /work
RUN apk add git
RUN git clone https://github.com/wasmerio/wasmer-js.git
RUN apk add python3
RUN apk add make
RUN apk add g++
RUN apk add util-linux
WORKDIR /work/wasmer-js
RUN npm install
CMD ["npm", "run", "dev"]

Usage:

docker build -t wasmer-js .
docker run -p 1234:1234 -it wasmer-js
sfranzyshen commented 2 years ago

I'm afraid I'm getting errors when I npm run dev while following the instructions in the README. I've seen similar when I've tried this on Mac and Windows too, but I'll show you the containerised version. Am I doing something wrong please, or is this repo somehow broken right now?

this repo is broken and abandoned ...

Antony74 commented 2 years ago

That's great, thanks for letting me know :-)

I was looking for the source code for the Web Assembly Shell on wapm.io, which looks like it may have lived here once (I clicked through from @wasmer/cli on npm), do you happen to know where it lives now, please?

corwin-of-amber commented 2 years ago

FWIW I still manage to build it with Webpack. I can make a config if you're interested.

But yeah, the Rust port is where they're putting their effort right now, hopefully we would be able to compile the Rust runtime to WASM and use it as a replacement for the JS stubs.

mischnic commented 2 years ago

You should be able to solve this specific error by bumping the version of the Babel packages: https://github.com/babel/babel/issues/11615#issuecomment-634208133

Antony74 commented 2 years ago

Thank you very much for the hints everyone. I now have a working branch

As you will see, this consists of:

  1. npm install -D @babel/helper-compilation-targets
  2. Downgrade parcel by one patch release
  3. npm run build

Is there any point in putting in a PR? Might also be nice to see a banner at the top of README.md noting that development is now focused on the Rust port. I think the Rust port is a good plan, by the way - ultimately that's got to be the right place for this functionality, but it does create a bit of a gap in the meantime.

corwin-of-amber commented:

FWIW I still manage to build it with Webpack. I can make a config if you're interested.

Nice username! Webpack strikes me as exactly the kind of program that left to index Shadow might unexpectedly become sentient! ;-)

Michael-F-Bryan commented 8 months ago

The old TypeScript implementation has been rewritten as a Rust library compiled to WebAssembly, with the bulk of the WASI/WASIX implementation being implemented in the wasmer-wasix crate.

Doing npm run dev works with no issues so I'm going to close this ticket.