我们有一个很大的Ionic
应用,我们在build
模式下尝试production
,因为它已经准备好了。我们发现的第一个问题是编译时我们遇到了“JavaScript
堆内存不足”错误,但是我们通过给节点提供更多内存来修复它:
"ionic:build": "node --max-old-space-size=16384 ./node_modules/@ionic/app-scripts/bin/ionic-app-scripts.js build",
npm run ionic:build -- --prod
使用此命令可以成功构建应用程序,但如果我打开它,则会出现以下错误:
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
我搜索了一下,发现它可能是由require
引起的,但我们没有使用它。知道可能发生的事情或我们可以做些什么来调试问题?有没有办法在不缩小JS的情况下使用“--prod”?
这是我的环境:
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
谢谢!
答案 0 :(得分:11)
我发现了问题。在我的package.json中我使用:
count
将版本减少到int result = 0;
int count = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == c){
result += Integer.min(k + 1, count);
count++;
}
}
为我修复了它。
答案 1 :(得分:4)
从^
和@ionic/app-scripts
中删除typescript
对我来说如下:
"devDependencies": {
"@ionic/app-scripts": "3.1.9",
"typescript": "2.8.3"
}
答案 2 :(得分:1)
我遇到了类似的问题,但错误的typescript
软件包是从其他依赖项目和VS Code的组合中获得的。我通过将^
和~
的完全版本(无@ionic/app-scripts
或typescript
)固定到我需要的位置来解决此问题。
"devDependencies": {
"@ionic/app-scripts": "3.1.9",
"typescript": "2.6.2"
}
答案 3 :(得分:1)
用新版本解决了这个错误,我检查了离子角导入,一切正常。
package.json
"typescript": "3.1.6"
离子信息
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)
错误
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
答案 4 :(得分:0)
对我来说,使用
"@ionic/app-scripts": "3.2.3",
"typescript": "2.7.1",
如果您要使用Typescript v3,则可以尝试使用其他专用选项来构建禁用aot(我认为这是使用prod标签的问题)
--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
如果没有,建议您转到ionic4 / 5