ollama / ollama-js

Ollama JavaScript library
https://ollama.ai
MIT License
1.56k stars 103 forks source link

Won’t build using Svelte #67

Closed Mark2M closed 2 months ago

Mark2M commented 3 months ago

I have a test frontend developed using Svelte and calling the Ollama API etc. There are no other dependancies or backend functionality other than local storage (for chat history).

It runs just fine in a development environment but won’t build.

I get the following errors on build:

error during build: RollupError: [vite-plugin-sveltekit-compile] node_modules/ollama/dist/index.js (11:13): "promises" is not exported by "__vite-browser-external", imported by "node_modules/ollama/dist/index.js".

Then further down: import { createHash } from 'crypto'; at getRollupError (file:///vercel/path0/node_modules/rollup/dist/es/shared/parseAst.js:376:41) at error (file:///vercel/path0/node_modules/rollup/dist/es/shared/parseAst.js:372:42) at Module.error (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:13654:16) at Module.traceVariable (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:14102:29) at ModuleScope.findVariable (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:11805:39) at ChildScope.findVariable (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ClassBodyScope.findVariable (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ChildScope.findVariable (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ChildScope.findVariable (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at FunctionScope.findVariable (file:///vercel/path0/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) Error: Command "npm run build" exited with 1

I did a quick search and found nothing at all…

Anyone know how to sort this out?

BruceMacD commented 3 months ago

I recently merged a change that uses rollup to build a commonjs module. This looks like it could be a result of that.

I'd suggest trying to set ollama to version 0.4.9 in your package.json and see if it resolves the issue. Let me know if it does and I'll dig into why rollup could be causing this.

Mark2M commented 3 months ago

Hi.. tried 0.4.9 and 0.4.8 and neither would build:

Got this when setting version to 0.4.9:

vite v5.1.6 building SSR bundle for production... ✓ 92 modules transformed. vite v5.1.6 building for production... [plugin:vite:resolve] [plugin vite:resolve] Module "fs" has been externalized for browser compatibility, imported by "/Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js". See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. [plugin:vite:resolve] [plugin vite:resolve] Module "path" has been externalized for browser compatibility, imported by "/Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js". See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. [plugin:vite:resolve] [plugin vite:resolve] Module "crypto" has been externalized for browser compatibility, imported by "/Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js". See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. [plugin:vite:resolve] [plugin vite:resolve] Module "os" has been externalized for browser compatibility, imported by "/Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js". See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. ✓ 86 modules transformed. x Build failed in 443ms x Build failed in 1.24s error during build: RollupError: [vite-plugin-sveltekit-compile] node_modules/ollama/dist/index.js (11:13): "promises" is not exported by "__vite-browser-external", imported by "node_modules/ollama/dist/index.js". file: /Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js:11:13 9: }; 10: import as utils from './utils.js'; 11: import fs, { promises, createReadStream } from 'fs'; ^ 12: import { join, resolve, dirname } from 'path'; 13: import { createHash } from 'crypto'; file: /Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js:11:13 9: }; 10: import as utils from './utils.js'; 11: import fs, { promises, createReadStream } from 'fs'; ^ 12: import { join, resolve, dirname } from 'path'; 13: import { createHash } from 'crypto'; at getRollupError (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/parseAst.js:376:41) at error (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/parseAst.js:372:42) at Module.error (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:13654:16) at Module.traceVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:14102:29) at ModuleScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:11805:39) at ChildScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ClassBodyScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ChildScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ChildScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at FunctionScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) me@meMBP SvelteKit-AI-FE % npm run build

sk-ollama-ai@0.0.1 build vite build

sh: vite: command not found me@meMBP SvelteKit-AI-FE % npm install

added 57 packages, and audited 58 packages in 3s

4 packages are looking for funding run npm fund for details

found 0 vulnerabilities

Then this for 0.4.8 (thought I might as well give it a go...

vite build

vite v5.1.6 building SSR bundle for production... ✓ 92 modules transformed. vite v5.1.6 building for production... [plugin:vite:resolve] [plugin vite:resolve] Module "fs" has been externalized for browser compatibility, imported by "/Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js". See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. [plugin:vite:resolve] [plugin vite:resolve] Module "path" has been externalized for browser compatibility, imported by "/Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js". See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. [plugin:vite:resolve] [plugin vite:resolve] Module "crypto" has been externalized for browser compatibility, imported by "/Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js". See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. [plugin:vite:resolve] [plugin vite:resolve] Module "os" has been externalized for browser compatibility, imported by "/Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js". See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. ✓ 85 modules transformed. x Build failed in 410ms x Build failed in 1.14s error during build: RollupError: [vite-plugin-sveltekit-compile] node_modules/ollama/dist/index.js (31:13): "promises" is not exported by "__vite-browser-external", imported by "node_modules/ollama/dist/index.js". file: /Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js:31:13 29: import as utils from './utils.js'; 30: import 'whatwg-fetch'; 31: import fs, { promises, createReadStream } from 'fs'; ^ 32: import { join, resolve, dirname } from 'path'; 33: import { createHash } from 'crypto'; file: /Users/me/Desktop/SvelteKit-AI-FE/node_modules/ollama/dist/index.js:31:13 29: import as utils from './utils.js'; 30: import 'whatwg-fetch'; 31: import fs, { promises, createReadStream } from 'fs'; ^ 32: import { join, resolve, dirname } from 'path'; 33: import { createHash } from 'crypto'; at getRollupError (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/parseAst.js:376:41) at error (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/parseAst.js:372:42) at Module.error (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:13654:16) at Module.traceVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:14102:29) at ModuleScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:11805:39) at ChildScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ClassBodyScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ChildScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at ChildScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38) at FunctionScope.findVariable (file:///Users/me/Desktop/SvelteKit-AI-FE/node_modules/rollup/dist/es/shared/node-entry.js:6019:38)

Mark2M commented 2 months ago

I'm not sure this should still be open. The issue was down to me not using the correct "browser" api, I was trying to use the node version in the browser (should always read the readme). The exact answer seems to have been deleted.

BruceMacD commented 2 months ago

Thanks for the update @Mark2M, closing this for now.