主页 > app >
使用 Angular Universal 和 Ionic App 时窗口未定义错误(angular cannot find module)
25-04-26
1
以上就是给各位分享使用AngularUniversal和IonicApp时窗口未定义错误,其中也会对angularcannotfindmodule进行解释,同时本文还将给你拓展ActionContro
以上就是给各位分享使用 Angular Universal 和 Ionic App 时窗口未定义错误 ,其中也会对angular cannot find module 进行解释,同时本文还将给你拓展ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、android – @ ionic / angular 4.0.0-beta.13:不允许加载本地资源:使用webview 2.2.3 – Ionic CLI 4.3.1、Angular 11 + Angular Universal + AngularFire + Firebase 云功能不工作、Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助 等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
使用 Angular Universal 和 Ionic App 时窗口未定义错误(angular cannot find module) 如何解决使用 Angular Universal 和 Ionic App 时窗口未定义错误
尝试使用我的 ionic 应用程序实现 angular Universal 时出现以下错误。这是错误信息
ERROR ReferenceError : window is not defined
顺便说一下,我使用 ionic ver 5.4.16
和
Angular CLI : 10.2 . 3 Node : 14.15 . 4 OS : darwin x64 Angular : 10.1 . 6
ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j 如何解决ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j
我正在Rails上执行此应用程序,页面加载正常,但在控制台中显示:
Started GET "/vendor/assets/stylesheets/bootstrap.min.css" for ::1 at 2020-08-17 09:09:51 -0500
Started GET "/vendor/assets/javascripts/bootstrap.min.js" for ::1 at 2020-08-17 09:09:51 -0500
ActionController::RoutingError (No route matches [GET]
"/vendor/assets/stylesheets/bootstrap.min.css"):
ActionController::RoutingError (No route matches [GET]
"/vendor/assets/javascripts/bootstrap.min.js"):
在我的供应商文件夹中,我同时拥有文件夹,javascript和样式表,并分别位于各自的bootsrtrap.min中。 即使在application.html.erb中,我也有以下内容:
<link href="vendor/assets/stylesheets/bootstrap.min.css" rel="stylesheet">
<%= csrf_Meta_tags %>
<%= stylesheet_link_tag ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
<%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>
</head>
<body>
<!-- Navigation -->
<nav>
<div>
<ahref="#">Instagram Clone</a>
<buttontype="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span></span>
</button>
<divid="navbarResponsive">
<ul>
<li>
<ahref="#">Home
<span>(current)</span>
</a>
</li>
<li>
<ahref="#">About</a>
</li>
<li>
<ahref="#">Services</a>
</li>
<li>
<ahref="#">Contact</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Page Content -->
<div>
<div>
<div>
<%= yield %>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript -->
<!--<script src="vendor/jquery/jquery.slim.min.js"></script>-->
<script src="vendor/assets/javascripts/bootstrap.min.js"></script>
</body>
</html>
在js和CSS这两个应用程序文件中,我都放置了“ require bootsrtrap.min”,即使该错误仍然出现在控制台中。 会是什么?
解决方法
RoR不使用目录作为文件夹结构指示。因为有资产装载者。您应该将5s或更少的css导入application.css中,并将js导入application.js中。并使用自己的助手添加捆绑文件:
1。用纱安装靴子
yarn add bootstrap @popperjs/core jquery
或
npm i bootstrap @popperjs/core jquery
栏位不超过5
2。在Assets Pipeline中导入文件
app / assets / stylesheets / application.css:
//...
require bootstrap/dist/css/bootstrap.min
//...
但是,如果需要,我建议使用SCSS并仅导入所需的样式。
app / assets / javascript / application.js:
//...
//= require jquery
//= require @popperjs/core
//= require bootstrap/dist/js/bootstrap.min
//...
3。在布局中导入资产
app / views / layout / application.html.erb:
<head>
...
<%= stylesheet_link_tag ''application'',media: ''all'' %>
</head>
<body>
...
<%= javascript_include_tag ''application'' %>
</body>
使用webpack滚动6
2。在application.scss和application.js中导入Bootstrap
app / javascript / stylesheets / application.scss:
//...
import ''bootstrap''
//...
app / javascript / packs / application.js:
import ''jquery''
import ''popper.js''
import ''bootstrap''
import ''../stylesheets/application''
3。在布局中导入捆绑包
<head>
...
<%= stylesheet_pack_tag ''application'',media: ''all'',''data-turbolinks-track'': ''reload'' %>
<%= javascript_pack_tag ''application'',''data-turbolinks-track'': ''reload'' %>
</head>
之后,您应该可以在所有应用程序中使用引导程序!
,
[解决方案]因此,在我的HTML(application.html.erb)内部,我有两个对js和css文件的调用:
<script src="assets/javascripts/bootstrap.min.js"></script>
<%= javascript_include_tag ''application'',''data-turbolinks-track'': ''reload'' %>
<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">
<%= csrf_meta_tags %>
<%= stylesheet_link_tag ''application'',''data-turbolinks-track'':
''reload'' %>
正如您在上面看到的那样,在使用javascript的情况下,我有一个使用脚本的调用,而另一个使用了的调用,两者都造成了问题,所以您只需要评论一个,我就对该脚本进行评论对于我的java文件和CSS文件,一个。 像这样:
<!--<link href="assets/stylesheets/bootstrap.min.css" rel="stylesheet">-->
<!--<script src="assets/javascripts/bootstrap.min.js"></script>-->
对我来说,解决了这个问题,我真的尝试了所有事情,这就是解决方案哈哈。
android – @ ionic / angular 4.0.0-beta.13:不允许加载本地资源:使用webview 2.2.3 – Ionic CLI 4.3.1 从相机拍摄照片后,这些路径来了.
file:///data/data/xxx.xxx.xxx.xxx/files/1542782360167.jpg
我使用Ionic 4,其中WebView是2.2.3,所有类型的回复都通过应用观察到但没有效果.
"cordova-plugin-ionic-webview": "2.2.3"
我曾经回答过这个问题
Not allowed to load local resource: ionic 3 android
所以我没有在设备上显示应用程序,这个不一样.
Failed to load resource: net::ERR_FILE_NOT_FOUND
解决方法:
我找到了解决问题的方法.
我已经完成了这个完美的链接.
https://devdactic.com/ionic-4-image-upload-storage/
在我的config.xml中,extra没有写任何东西.
简而言之 : 新的webview插件不支持file:/// url
首先将网址转换为http:// localhost:< post> / url 使用此函数this.webview.convertFileSrc(img);
像这样返回这个函数值http:// localhost:8080 / _file_ / data / data / xxx.xxx.xxx.xxx / files / 1542782360167.jpg
我的建议使用上面的链接来解决同样的问题……
Angular 11 + Angular Universal + AngularFire + Firebase 云功能不工作 如何解决Angular 11 + Angular Universal + AngularFire + Firebase 云功能不工作 我一直在努力让 Angular Universal 在 Firebase 上使用 Angular 11.2.3 和最新版本的 AngularFire 6.1.4 在一个全新的空白项目中工作。
我用来创建项目和原理图的步骤是:
ng new rro - ssr -- strict -- routing = true -- style = sass
ng add @nguniversal / express - engine
firebase init
初始化 Firebase 云函数和 Firebase 托管
ng add @angular / fire
点击是,创建一个 Firebase 云函数以将托管重定向到
如果我使用 ng deploy
并查看托管站点,它工作正常,Angular Universal 正在执行服务器端渲染。
但是为什么没有办法在 Angular 中指定 Cloud Functions 文件夹?我正在处理的项目在 Angular 应用程序的根目录中名为 functions
的默认文件夹中已经有了 Cloud Functions。此外,从 AngularFire SSR 构建器生成的 Cloud Functions 使用的是 Javascript,而我们的项目使用的是 Typescript。
实际上,我无法为 Firebase Cloud Functions 定义两个单独的文件夹,而且我不希望 @angular/fire:deploy
构建器覆盖我现有的 Cloud Functions。
此外,如果我尝试部署由 Angular Universal 制作的 npm 脚本(部分流程在此处描述 https://github.com/angular/angularfire/blob/master/docs/universal/cloud-functions.md ),它以某种方式没有按照链接中的描述执行重写。
firebase.json
{
"functions" : {
"source" : "functions"
}, "hosting" : [
{
"target" : "rro-ssr" , "public" : "functions\\\\ dis t\\\\rro-ssr\\\\ bro wser" , "ig nor e" : [
"**/.*"
], "headers" : [
{
"source" : "*.[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f].+(css|js)" , "headers" : [
{
"key" : "Cache-Control" , "value" : "public,max-age=31536000,immutable"
}
]
}
], "rewrites" : [
{
"source" : "**" , "function" : "ssr"
}
]
}
]
}
我使用的是来自 Fireship 的“其他资源”中的链接:https://fireship.io/lessons/angular-universal-firebase/
云函数functions/src/index.ts
const functions = require ( ''firebase-functions'' );
// Increase readability in Cloud Logging
require ( "firebase-functions/lib/logger/compat" );
const universal = require ( ''../ dis t/rro-ssr/server/main'' ). app ();
exports . ssr = functions
. region ( ''us-central1'' )
. runWith ({
timeoutSeconds : 60 , memory : ''256MB''
})
. https
. onRequest ( universal );
问题 :即使我只是复制 @angular/fire:deploy
构建器放入 dist/{project-name}
文件夹中的所有内容并执行 firebase deploy
,它也不会在托管站点,如果我手动构建和部署,而不使用 AngularFire SSR 构建器。
我在 package.json
中使用的 npm 脚本:
"deploy" : "npm run build:ssr && npm run --prefix functions build:ssr && firebase deploy" ,
我在 functions/package.json
中使用的 npm 脚本:
"build:ssr" : "node cp-angular.js && tsc" ,
复制脚本functions/cp-angular.js
:
// cop y files from src/ dis t folder to functions/ dis t folder in order to serve them via Firebase Cloud Functions
const fs = require ( ''fs-extra'' );
( async () => {
const src = ''../ dis t'' ;
const cop y = ''./ dis t'' ;
await fs . remove ( cop y );
await fs . cop y ( src , cop y );
// finally remove the original dis t folder
// await fs.remove(src);
})();
任何帮助将不胜感激!
更新
我把不工作的代码放在这个存储库中(空的 app-root):
https://github.com/sanderschnydrig/ssr_manual
请在您选择的 Firebase 项目中使用 npm run build:ssr
后跟 firebase deploy
进行重现。 .firebaserc 需要更新才能工作。
以及在此存储库中运行的代码:
https://github.com/sanderschnydrig/ssr_angularfire
请使用 ng deploy
进行复制。 .firebaserc 也需要更新。
Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助 如何解决Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助
Angular HMR 不替换/重新加载组件
实时重载适用于 11.0.6 和 12.1.0-next.6。
Angular 12.0.5 根本不会重新加载。
任何人都可以使用它并且可以提供一个有效的示例应用程序?
给定:一个简单的入门应用
(来自故事书 https://github.com/chromaui/intro-storybook-angular-template)
使用 Angular 11.0.6
然后 HMR 开箱即用并不能按预期工作,但完全重新加载可以(即启用 [WDS] 实时重新加载。)
更新到 Angular 12.0.5 时
然后 HMR 不会重新加载任何东西。 (根本没有实时重新加载)
12.0.5 行为:更新角度组件时不重新加载。
控制台错误(chrome):
dev-server.js:60 Uncaught Error: [HMR] Hot Module Replacement is disabled.
at Object.5033 (dev-server.js:60)
at __webpack_require__ (bootstrap:19)
at __webpack_exec__ (polyfills.js:12907)
at polyfills.js:12908
at webpackJsonpCallback (jsonp chunk loading:35)
at polyfills.js:1
编辑组件 (HTML) 后,控制台“卡住”“[WDS] 应用热更新...”
更新到 Angular 12.1.0-next.6 时"
结果与 v11 相同(然后 HMR 开箱即用,但完全重新加载可以(即启用 [WDS] 实时重新加载。)
webpack-dev-server 是原因(可能与 webpack 5.3 一起)
经过一番挖掘,我意识到这与 webpack-dev-server 有关。
https://github.com/webpack/webpack-dev-server/issues/2758
一个解决方案似乎是将 webpack 目标设置为 web(而不是浏览器)进行开发。或者使用测试版的 webpack-dev-server(即 4.0.0-beta.x)
"target: ''web'',
调查 Angular 构建系统使用的版本
在“node_modules/@angular-devkit/build-webpack/package.json”中使用了 webpack-dev-server。
对于 "@angular-devkit/build-angular": "~12.0.5",webpack-dev-server 版本为 3.11.2
"peerDependencies": { "webpack": "^5.30.0","webpack-dev-server": "^3.11.2" },
将 Angular 更新为 v-next 时 对于 "@angular-devkit/build-angular": "^12.1.0-next.6",webpack-dev-server 版本较低,为 3.1.4,与 ''build-angular'' v11 相同。 (可能是因为他们意识到实时重新加载的问题)
"peerDependencies": { "webpack": "^5.30.0","webpack-dev-server": "^3.1.4" },
使用 Angular 11 时 对于“@angular-devkit/build-angular”:“~0.1100.6”
"peerDependencies": { "webpack": "^4.6.0",
配置 webpack(使用 Angular 12.0.5 / next.6 时) - 没有帮助
根据以下资源配置,使用@angular-builders/custom-webpack
没有帮助。帮助! =D
https://github.com/just-jeb/angular-builders/tree/master/packages/custom-webpack#Custom-webpack-dev-server
https://github.com/just-jeb/angular-builders/blob/master/packages/custom-webpack/examples/full-cycle-app/extra-webpack.config.ts
//package.json
"devDependencies": {
"@angular-builders/custom-webpack": "^12.1.0",
//angular.json
//replace "builder" in "build" and "serve"
//add customWebpackConfig with path to a new config file
//"builder": "@angular-devkit/build-angular:browser"
"architect": {
"build": {
"builder": "@angular-builders/custom-webpack:browser","options": {
"customWebpackConfig": {
"path": "extra-webpack.config.ts","replaceDuplicatePlugins": true
},//...
//replace "builder": "@angular-devkit/build-angular:dev-server","serve": {
"builder": "@angular-builders/custom-webpack:dev-server",
//extra-webpack.config.ts
import { Configuration } from "webpack";
export default {
target:"web",// target: process.env.NODE_ENV === "development" ? "web" : "browserslist",} as Configuration;
解决方法
我们有一些与您介绍的类似的东西。您是否删除了 package_lock、node_modules 并进行了全新安装?
在 Angular 11.2.4 和新的 Angular 12.1.4 项目中,使用 HRM 进行设置没有问题。 尝试使用 "@angular-builders/custom-webpack": "12.1.0","@angular-devkit/build-angular": "^12.1.4" 它应该可以工作
关于使用 Angular Universal 和 Ionic App 时窗口未定义错误 和angular cannot find module 的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于ActionController :: RoutingError没有路由与[GET]“ / vendor / assets / stylesheets / bootstrap.min.css”匹配 app / assets / stylesheets / application.css: app / assets / javascript / application.js: app / views / layout / application.html.erb: app / j、android – @ ionic / angular 4.0.0-beta.13:不允许加载本地资源:使用webview 2.2.3 – Ionic CLI 4.3.1、Angular 11 + Angular Universal + AngularFire + Firebase 云功能不工作、Angular 12.0.5 HMR 不工作,不重新加载模块,不重新加载页面实时重新加载,Angular 11.0.6 重新加载整个页面 调查 Angular 构建系统使用的版本配置 webpack使用 Angular 12.0.5 / next.6 时 - 没有帮助 的相关信息,请在本站寻找。