我最近将我的应用程序从Ember 1.3升级到Ember 2.4.2。但是在使用ember build --env production
将其部署到我的生产环境后,我注意到了一些问题。
第一个问题是每个脚本/样式表标记都附加了integrity
属性,这使得无法加载这些资源。经过一些调查后,我决定只将这些属性的值替换为空。这允许应用程序下载资源,但我注意到控制台中出现错误,该错误在Ember创建的缩小的website.js文件上显示define is not defined
。我无法在本地复制此问题,因为应用运行良好。我还可以采取哪些措施来调查此问题?这可能与我安装的某个插件有关,也可能与我删除的SRI完整性属性有关?
编辑:我刚尝试使用Ember构建和部署一个vanilla应用程序(例如ember new testApp and ember build --env production
并遇到了同样的问题.Ember是否存在我不知道的问题?我不知道'认为它是我的服务器,因为我能够正常渲染一个简单的index.html。
答案 0 :(得分:3)
我更喜欢使用最新的NodeJS(v5.8)和最新的npm
。
您可以使用npm install -g npm
更新您的npm。
The best way to install NodeJS
我想,你有最新的ember-cli。如果您不在项目之内,可以更新它:
$ cd ~
$ npm install -g ember-cli
我刚刚克隆了您的存储库。
$ git clone https://github.com/uioporqwerty/website.git
$ cd website
$ npm install && bower install
$ ember server
出现以下错误:
➜ website git:(master) ember s
version: 2.4.2
The Broccoli Plugin: [ConfigLoader] failed with:
Error: Attempting to watch missing directory: config
at EventEmitter.Watcher_addWatchDir [as addWatchDir] (/Users/szines/projects/temp/website/node_modules/broccoli-sane-watcher/index.js:90:11)
at /Users/szines/projects/temp/website/node_modules/ember-cli-broccoli/lib/builder.js:95:35
...
由于您的ember-cli项目中缺少几个重要文件,我只是运行ember init
$ ember init
在此过程中,您会看到一个问题。您可以使用' d'检查建议的更改,但它只会删除bootstrap和font-awesome,这很好,因为我们将使用ember install
重新安装它们。
[?] Overwrite bower.json? (Yndh) Y
现在我们删除所有以前的bower和npm包,temp文件夹和dist文件夹。
$ rm -rf bower_components node_modules tmp dist
$ npm install && bower install
安装ember-bootstrap
和ember-font-awesome
:
$ ember install ember-bootstrap
$ ember install ember-font-awesome
启动服务器:
$ ember server
你的应用就像一个魅力。在浏览器中打开localhost:4200。
您可以构建生产:
$ ember build --prod
所有文件都在/dist
文件夹中。
或者使用服务器运行生产版本:
$ ember server --prod
享受你的新Ember! :)
更新
您可以使用ember-cli-update
更新您的Ember应用:
$ npx ember-cli-update
$ npx ember-cli-update --run-codemods
答案 1 :(得分:2)
Zoltan的回答非常有助于成为解决问题的一部分。根据Zoltan的回答修复我的本地网站后,我发现了一些问题。
首先,Ember-Cli 2.4.2出现以下错误:
Could not find module ember-data/-private\system\references\record imported from ember-data/-private/system/references
此问题已在Github repo for ember-cli的主分支中得到解决,但它尚未进入npm repo。所以我做的是用npm remove -g ember-cli
卸载ember-cli,然后按照github repo https://github.com/ember-cli/ember-cli上的开发说明进行操作。这解决了这个问题。
另外,我注意到我的nginx服务器没有提供js和css文件;我通过使用test.css和test.js创建index.html来测试这一点,并注意到服务器没有抛出这些文件。而不是试图找到问题,我注意到我的nginx在我的RPI上有点过时,它是在1.6.x版本,所以我认为这是更新它的好时机;我通过先删除旧版本然后运行此脚本https://gist.github.com/MattWilcox/402e2e8aa2e1c132ee24将其更新为1.9.7。之后我有了nginx 1.9.7,但我确实安装了apache2,这导致了自己的头痛并识别了默认网站,所以我删除了它。
最后,由于我的设置被覆盖,我从rsync备份中恢复了/ etc / nginx,只需复制该目录即可获得我的pi。
然后热潮,一切正常。花了一段时间但是https://www.uioporqwerty.com的所有内容似乎都运行得很好而且qualsys实验室报告工作正常https://www.ssllabs.com/ssltest/analyze.html?d=www.uioporqwerty.com所以我的所有设置都正常运行:)很高兴让Ember-Cli正常工作。