最后,我用ember开发。但我发现奇怪的是,当我按照以下顺序安装软件包:npm install
然后bower install
时,它会导致内存不足异常;当我交换订单时,它运作良好。
例外情况如下:
WARNING: Node v8.1.2 has currently not been tested against Ember CLI and may result in unexpected behaviour.
<--- Last few GCs --->
[5015:0x102805200] 74556 ms: Mark-sweep 1404.9 (1464.9) -> 1404.8 (1439.9) MB, 2781.4 / 0.0 ms (+ 0.0 ms in 0 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 2781 ms) last resort
[5015:0x102805200] 77514 ms: Mark-sweep 1404.8 (1439.9) -> 1404.8 (1439.9) MB, 2957.7 / 0.0 ms last resort
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 0x10d601fa9891 <JS Object>
3: keysForTree [/Users/gpc/Documents/codes/gitlab/sixtant-fornt/sixtant/node_modules/.0.3.1@broccoli-kitchen-sink-helpers/index.js:36] [bytecode=0x15fbb22b08a9 offset=63](this=0x2a2411a8b051 <JS Global Object>,fullPath=0x1e708a1f0629 <String[860]: /Users/gpc/Documents/codes/gitlab/sixtant-fornt/sixtant/node_modules/.6.0.0@broccoli-babel-transpiler/node_modules/babel-core/node_modules/babel-...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: node::Abort() [/usr/local/bin/node]
2: node::FatalException(v8::Isolate*, v8::Local<v8::Value>, v8::Local<v8::Message>) [/usr/local/bin/node]
3: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/usr/local/bin/node]
4: v8::internal::Factory::NewFixedArray(int, v8::internal::PretenureFlag) [/usr/local/bin/node]
5: v8::internal::Factory::NewScopeInfo(int) [/usr/local/bin/node]
6: v8::internal::ScopeInfo::Create(v8::internal::Isolate*, v8::internal::Zone*, v8::internal::Scope*, v8::internal::MaybeHandle<v8::internal::ScopeInfo>) [/usr/local/bin/node]
7: v8::internal::Scope::AllocateScopeInfosRecursively(v8::internal::Isolate*, v8::internal::MaybeHandle<v8::internal::ScopeInfo>) [/usr/local/bin/node]
8: v8::internal::DeclarationScope::AllocateVariables(v8::internal::ParseInfo*, v8::internal::AnalyzeMode) [/usr/local/bin/node]
9: v8::internal::DeclarationScope::Analyze(v8::internal::ParseInfo*, v8::internal::AnalyzeMode) [/usr/local/bin/node]
10: v8::internal::Compiler::Analyze(v8::internal::ParseInfo*, v8::internal::ThreadedList<v8::internal::ThreadedListZoneEntry<v8::internal::FunctionLiteral*> >*) [/usr/local/bin/node]
11: v8::internal::(anonymous namespace)::GetOptimizedCode(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Compiler::ConcurrencyMode, v8::internal::BailoutId, v8::internal::JavaScriptFrame*) [/usr/local/bin/node]
12: v8::internal::Compiler::CompileOptimized(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Compiler::ConcurrencyMode) [/usr/local/bin/node]
13: v8::internal::Runtime_CompileOptimized_Concurrent(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
14: 0x253ed080437d
[1] 5015 abort ember s
节点版本为v8.1.2,npm版本为5.0.3。
以下是bower.json
:
{
"name": "sixtant",
"dependencies": {
"ember": "~2.6.0",
"ember-cli-shims": "0.1.1",
"ember-cli-test-loader": "0.2.2",
"ember-load-initializers": "ember-cli/ember-load-initializers#0.1.4",
"ember-qunit": "^0.4.9",
"ember-qunit-notifications": "^0.1.0",
"ember-resolver": "~0.1.18",
"jquery": "^2.2.0",
"loader.js": "ember-cli/loader.js#3.2.1",
"qunit": "~1.17.1",
"fastclick": "~1.0.6",
"lodash": "^2.4.0"
},
"resolutions": {
"jquery": "^2.2.0",
"ember": "~2.6.0"
}
}
而package.json
是:
{
"name": "sixtant",
"version": "0.0.0",
"description": "Small description for sixtant goes here",
"private": true,
"directories": {
"doc": "doc",
"test": "tests"
},
"scripts": {
"build": "ember build -o build --environment production",
"start": "ember server",
"test": "ember test"
},
"repository": "",
"engines": {
"node": ">= 0.10.0"
},
"author": "",
"license": "MIT",
"devDependencies": {
"broccoli-asset-rev": "^2.4.4",
"ember-ajax": "^2.4.1",
"ember-cli": "2.6.3",
"ember-cli-app-version": "^1.0.0",
"ember-cli-babel": "^5.1.6",
"ember-cli-dependency-checker": "^1.2.0",
"ember-cli-fastclick": "^1.0.3",
"ember-cli-htmlbars": "^1.0.3",
"ember-cli-htmlbars-inline-precompile": "^0.3.1",
"ember-cli-inject-live-reload": "^1.4.0",
"ember-cli-jshint": "^1.0.0",
"ember-cli-qunit": "^1.4.0",
"ember-cli-release": "^0.2.9",
"ember-cli-sass": "^6.1.1",
"ember-cli-sri": "^2.1.0",
"ember-cli-uglify": "^1.2.0",
"ember-data": "^2.6.0",
"ember-export-application-global": "^1.0.5",
"ember-load-initializers": "^0.5.1",
"ember-resolver": "^2.0.3",
"liquid-fire": "^0.27.0",
"loader.js": "^4.0.1",
"sass": "^0.5.0"
}
}
为什么?凉亭和npm独立吗? OOM为什么会发生?