如何在不使用发布部署的情况下部署dart应用程序(使用Web ui)
手动部署Dart Web ui应用程序的最佳策略是什么 发布部署对我不起作用,我提出了错误报告。因此,我在想,手动部署的最佳方式是什么 我是这样开始的: 1) 我从projectroot编译webui组件(dwc.dart) 2) 将目录更改为web/out,然后运行dart2js 3) 将所有.js文件复制到服务器上的scripts/js公用文件夹中 4) 将appname.html复制到服务器,将css和脚本路径更改为选项3 5) 确保dart.js也与项目3位于同一目录中 这就是我所能做到的。那么我还需要做什么呢 有几个问题: 1) 我是否手动更改生成的.js文件中的文件路径,以指向服务器上的公用文件夹,以查找它们引用的文件,并确保这些文件也位于服务器上 2) 我是否也需要将所有包复制到服务器 3) 服务器上有首选的文件结构吗 任何关于这方面的建议都非常感谢如何在不使用发布部署的情况下部署dart应用程序(使用Web ui),dart,dart-webui,Dart,Dart Webui,手动部署Dart Web ui应用程序的最佳策略是什么 发布部署对我不起作用,我提出了错误报告。因此,我在想,手动部署的最佳方式是什么 我是这样开始的: 1) 我从projectroot编译webui组件(dwc.dart) 2) 将目录更改为web/out,然后运行dart2js 3) 将所有.js文件复制到服务器上的scripts/js公用文件夹中 4) 将appname.html复制到服务器,将css和脚本路径更改为选项3 5) 确保dart.js也与项目3位于同一目录中 这就是我所能做到
谢谢。我为它写了一个Grunt脚本(因为我没有时间查看如何正确地为Grunt编写代码,我没有分享代码,因为它太乱了),但我基本上是这样做的:
- 使用dwc将文件列表编译为给定的
dirout
- 将其编译为javascript
- 清理所有不可部署的文件
- 更改HTML中的某些路径以匹配服务器路径(由于某些原因,编译过程会更改这些路径)
- 删除除我真正需要的包(JS interopt和browser)之外的所有包
因为我只使用JS版本,所以我删除了所有dart包。由于HTML文件中的路径由您决定,因此您可以使用适合您/您的服务器的结构。我可以为您提供一个Grunt脚本,以了解任务的顺序。实际上,我使用的顺序是:
testApp
- gruntfile.js
- package.js
/lib
/packages
/angular
/web
- index.html
- main.dart
/css
/img
因此,涵盖1-4步骤的Grunt示例脚本如下所示(复制到gruntfile.js):
这就是Grunt脚本示例
在项目的根目录中创建/gruntfile.js文件,并将脚本复制/粘贴到其中
在项目的根目录中创建/package.json文件,并复制/粘贴以下脚本:
{
"name": "testApp",
"version": "0.0.1",
"description": "SomeDescriptionForTheTestApp",
"main": "",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "YourName",
"peerDependencies": {
"grunt-cli": "^0.1.13"
},
"devDependencies": {
"grunt": "^0.4.5",
"grunt-cleanempty": "^1.0.3",
"grunt-contrib-copy": "^0.7.0",
"grunt-dart2js": "0.0.5",
"grunt-mkdir": "^0.1.2",
"matchdep": "^0.3.0"
}
}
在Windows中打开命令提示符,在Linux中打开终端,导航到项目的根目录并使用以下命令:
npm install
等待,直到所有需要的Grunt模块将下载到您的本地项目。完成后,在命令提示符或终端中发出以下命令:
node -e "require('grunt').cli()"
您可以使用它来启动Grunt默认任务,而无需在系统上全局安装Grunt
现在,要了解项目的确切构建结构(包括项目需要的包),请使用Pub build进行构建。然后,您将能够指示Grunt创建相同的dir结构
如果需要,可以添加其他任务(如缩小)
希望这能帮助你们理解这个过程,让你们首先开始一个测试应用程序。添加您的评论,使其更加完善和简化。此外,不要忘记缩小;),你说得对@GökhanBarışAker,我没有提到它,因为在我使用这个时,缩小破坏了JS代码的一部分。不知道现在是否已修复。谢谢您的帮助。我是否需要在部署中包含实际的.dart文件?此外,生成的.JS文件在文件系统中似乎有一个指向.dart文件的路径。这些路径也需要手动编辑吗?请共享您的Grunt脚本(即使它很乱)。
node -e "require('grunt').cli()"