Reputation: 8145
we have a large Ionic
app that we’re trying to build
in production
mode since it’s almost ready. The first issue we found is that we were getting a “JavaScript
heap out of memory” error when compiling, but we fixed it by giving more memory to node:
"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
npm run ionic:build -- --prod
With this command the app successfully builds, but if I open it I get the following error:
Uncaught Error: Cannot find module “.”
at vendor.js:1
at vendor.js:1
at Object. (vendor.js:1)
at e (vendor.js:1)
at Object. (main.js:1)
at e (vendor.js:1)
at window.webpackJsonp (vendor.js:1)
at main.js:1
I searched a bit and I found that it could be caused by require
, but we aren’t using it. Any idea of what could be going on or what we can do to debug the issue? Is there any way to use “–-prod” without minifying the JS?
This is my environment:
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : 6.5.0
Gulp CLI : [09:06:54] CLI version 3.9.1 [09:06:54] Local version 3.9.1
local packages:
@ionic/app-scripts : 3.1.9
Cordova Platforms : android 6.1.2 ios 4.3.1
Ionic Framework : ionic-angular 3.9.2
System:
Android SDK Tools : 25.2.5
ios-deploy : 1.9.1
ios-sim : 5.0.8
Node : v8.6.0
npm : 5.3.0
OS : macOS High Sierra
Xcode : Xcode 9.3.1 Build version 9E501
Misc:
backend : legacy
Thank you!
Upvotes: 8
Views: 6162
Reputation: 878
For me work using
"@ionic/app-scripts": "3.2.3",
"typescript": "2.7.1",
if do you want to use typescript v3, you can try to build disabling aot (that I think is the problem of using prod tag) with other adicional options
--release --aot false --environment prod --output-hashing all --sourcemaps false --extract-css true --named-chunks false --build-optimizer true --minifyjs=true --minifycss=true --optimizejs=true
If not, I recommend you to move to ionic4/5
Upvotes: 2
Reputation: 701
Got this error with a new version and I checked the ionic-angular imports and it's fine.
package.json
"typescript": "3.1.6"
Ionic info
ionic (Ionic CLI) : 4.4.0
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.0
Cordova:
cordova (Cordova CLI) : 8.1.1 (cordova-lib@8.1.0)
Cordova Platforms : android 7.0.0, browser 5.0.3
Cordova Plugins : no whitelisted plugins (0 plugins total)
error
vendor.js:138159 Uncaught Error: Cannot find module "."
at webpackMissingModule (vendor.js:138159)
at vendor.js:138159
at Object.<anonymous> (vendor.js:138168)
at __webpack_require__ (vendor.js:55)
at Object.<anonymous> (main.js:16031)
at __webpack_require__ (vendor.js:55)
at webpackJsonpCallback (vendor.js:26)
at main.js:1
Upvotes: 1
Reputation: 1
Removing ^
from @ionic/app-scripts
and typescript
works for me as follows:
"devDependencies": {
"@ionic/app-scripts": "3.1.9",
"typescript": "2.8.3"
}
Upvotes: 9
Reputation: 3838
I had a similar problem, but the wrong typescript
package was getting pulled in from a combination of other dependent projects as well as VS Code. I resolved it by pinning the exact version (no ^
or ~
) of @ionic/app-scripts
and typescript
to what I needed.
"devDependencies": {
"@ionic/app-scripts": "3.1.9",
"typescript": "2.6.2"
}
Upvotes: 3
Reputation: 8145
I found the problem. In my package.json I was using:
"typescript": "^2.9.1",
Decreasing the version to ~2.6.2
fixed it for me.
Upvotes: 17