在新机器上启动Ember项目时出错:意外的令牌导入,未定义

我在2台电脑上安装了Ember js项目,但是在安装新电脑时遇到问题。

我这样安装:

git clone <repository-url> cd projectfolder npm install bower install ember serve 

它编译,但在浏览器中,我看到这样的错误:

event-factory.js:3 – 未捕获的SyntaxError:意外的令牌导入

application.js:1 – 未捕获的ReferenceError:define没有定义

似乎与巴贝尔一些错误。

我有这样的package.json

 { "name": "project", "version": "2.0.0", "description": "", "private": true, "directories": { "doc": "doc", "test": "tests" }, "scripts": { "build": "ember build", "start": "ember server", "test": "ember test" }, "repository": { "type": "git", "url": "..." }, "engines": { "node": ">= 0.12.0" }, "author": "", "license": "MIT", "devDependencies": { "broccoli-asset-rev": "^2.4.5", "ember-ajax": "2.4.1", "ember-cli": "^2.10.0", "ember-cli-app-version": "^2.0.0", "ember-cli-babel": "^5.1.7", "ember-cli-data-export": "0.1.26", "ember-cli-dependency-checker": "^1.3.0", "ember-cli-deploy": "*", "ember-cli-deploy-build": "*", "ember-cli-deploy-gzip": "*", "ember-cli-deploy-revision-data": "*", "ember-cli-deploy-s3": "*", "ember-cli-deploy-ssh-index": "*", "ember-cli-google-fonts": "1.13.0", "ember-cli-htmlbars": "^1.0.10", "ember-cli-htmlbars-inline-precompile": "^0.3.3", "ember-cli-inject-live-reload": "^1.4.1", "ember-cli-jshint": "^2.0.1", "ember-cli-moment-shim": "1.2.0", "ember-cli-pagination": "2.2.3", "ember-cli-qunit": "^3.0.1", "ember-cli-release": "0.2.9", "ember-cli-sri": "^2.1.0", "ember-cli-test-loader": "^1.1.0", "ember-cli-uglify": "^1.2.0", "ember-content-editable": "0.10.0", "ember-data": "^2.10.0", "ember-data-change-tracker": "0.5.5", "ember-disable-proxy-controllers": "^1.0.1", "ember-export-application-global": "^1.0.5", "ember-load-initializers": "^0.5.1", "ember-metrics": "0.8.1", "ember-notify": "^5.2.0", "ember-power-select": "1.0.0", "ember-radio-button": "1.1.1", "ember-resolver": "^2.0.3", "ember-select-guru": "^1.1.2", "ember-simple-auth": "1.1.0", "ember-simple-auth-loopback": "1.1.0", "ember-truth-helpers": "1.2.0", "ember-welcome-page": "^1.0.3", "loader.js": "^4.0.10", "mock-socket": "^6.0.4" }, "dependencies": { "ember-cli": "^2.11.1", "ember-cli-babel": "^5.2.4", "ember-cli-deploy": "^1.0.0", "ember-cli-deploy-gzip": "^0.2.4", "ember-cli-deploy-revision-data": "^0.3.3", "ember-cli-deploy-s3": "^0.4.0", "ember-cli-inject-live-reload": "^1.6.1", "ember-cli-qunit": "^3.1.1", "ember-data": "^2.11.3", "ember-websockets": "6.3.0", "loader.js": "^4.2.2" } } 

和bower.json:

 { "name": "getprospect", "dependencies": { "ember": "v2.10.2", "ember-cli-shims": "0.1.3", "ember-cli-test-loader": "0.2.2", "ember-qunit-notifications": "0.1.0", "bootstrap": "^3.3.6", "jquery-stupid-table": "^1.0.1", "jquery-auto-grow-input": "*", "file-saver": "*", "js-xlsx": "~0.8.0", "fullcalendar": "^2.7.1", "moment": "^2.17.1", "moment-timezone": "^0.5.11", "ember-simple-auth": "^0.8.0", "raven-js": "^3.2.1", "urijs": "^1.18.8", "socket.io-client": "^1.7.2" } } 

我已经在一个月前成功安装了这个项目,但不知道为什么不在这台机器上启动…任何帮助表示赞赏。

你的问题很可能是使用^作为你的依赖关系。 当你做一个干净的安装时, ^ (插入符号)会把你的依赖升级到一个主版本。 例如,如果你对一个插件的依赖是让我们说1.2.0 ,你使用^1.2.0并有一个新的版本可用1.3.0 ,你会得到这个新的主要版本。 如果你使用~ (tilda)而不是^ ,那么你将不会得到1.3.0但是如果可用的话1.2.2 。 为了使用确切的版本,以便在执行干净的npm install时不会改变依赖关系,可以在依赖关系定义中删除caret和tilda。

为了弄清楚哪些依赖过时,可以使用npm outdated