angular - 如何在没有服务器的情况下运行角度编译页面
问题描述
我使用的是 Angular 6。我正在使用这个 cli 命令构建我的项目:
ng build --prod --base-href=
dist/index.html
然后,我直接打开,没有服务器,在那些快乐的日子里,我可以离线使用我的项目。
最近我已将 angular 更新为 8。现在,我使用相同的命令进行构建。但是,现在我收到CORS错误:
CORS 策略已阻止从源“null”访问“file:///D:/...../polyfills-es2015.707fe33a73ba6b994c2b.js”处的脚本:跨源请求仅支持协议方案:http ,数据,铬,铬扩展,https。
发生了什么变化?我怎么能像以前一样离线使用我的项目?
编辑:
现在我可以回答了
“有什么变化?”
之前,在index.html
,type
for 脚本是"text/javascript"
. 但现在我明白了"module"
。
前:
<script type="text/javascript" src="main.90ef8874f90877154126.bundle.js">
现在:
<script src="main-es2015.057f1c108bdef8198685.js" type="module">
当我将模块转换为文本/javascript时,它可以工作。
但是现在我不知道是什么type="module"
,为什么 angular 或 cli 开始放置“模块”,为什么 Chrome 不允许它,以及我如何强制 angular 不放置“模块”而只是放置“文本/javascript” .
解决方案
我从来没有尝试过做这件事(因为我从来没有需要)但是一个想法可能是用 Electron 将你的应用程序转换为桌面应用程序。有像 Hyper(似乎也是 VS Code)这样的软件,它们实际上是 Javascript/html/css 软件,但它们被设计为在桌面上运行,而不是在 Web 浏览器上运行。
参考:https ://www.electronjs.org/
我想你的需要就是这样。
推荐阅读
- github - 阻止文件被检入存储库?
- .htaccess - 使用 .htaccess 自动更正文件扩展名
- php - CakePHP 如何在 hasMany 查询中限制两个表的字段?
- kotlin - 为什么将不同类型的可变列表放在可变列表中时表现为不可变
- python - 为什么我在尝试引用 cv2、inutils 等时得到一个名为:___ 错误的无模块
- r - 如何在 tidyverse 中滚动计算?
- python - 如何设置 tkinter 'textvariable',在单独的线程中运行,来自主线程的队列中的值?
- java - 为 Swagger DTO 对象提供默认值
- javascript - 用户输入和 toFixed 方法不起作用
- rust - 一次不能多次借用 `reader` 作为 mutable