我可以爲您提供一個Grunt腳本來了解任務的順序。實際上,我使用的順序是:
- 創建構建目錄。我通常使用/ build/web。我通常將這些文件(index.html,main.dart,/ css等)創建到/ web目錄中。我將剩餘的組件創建到/ lib目錄中。
- 編譯。dart文件,其中包含main()函數(在我的案例中爲更簡單的項目「main.dart」)文件到Javascript並將其放到/ build/web目錄
- 將其他所需的文件和文件夾複製到/ build/web目錄。另外,在這個過程中,你將複製你的項目需要的軟件包。你會在下面提供的例子中看到。
- 從項目
- 刪除所有空文件夾,您可以創建一個咕嚕任務在瀏覽器中打開/index.html文件一旦建立過程已經結束(我不會提供這個例子)
鏢測試項目的結構:
testApp
- gruntfile.js
- package.js
/lib
/packages
/angular
/web
- index.html
- main.dart
/css
/img
所以,繁重的示例腳本覆蓋步驟1 - 4看起來像這樣(把它複製到gruntfile.js):
module.exports = function (grunt) {
grunt.initConfig({
// 1.
// create build web directory
mkdir: {
build: {
options: {
create: ['build/web']
}
}
},
// 2.
// compile dart files
dart2js: {
options: {
// use this to fix a problem into dart2js node module. The module calls dart2js not dart2js.bat.
// this is needed for Windows. So use the path to your dart2js.bat file
"dart2js_bin": "C:/dart/dart-sdk/bin/dart2js.bat"
},
compile: {
files: {'build/web/main.dart.js': 'web/main.dart'}
}
},
// 3.
// copy all needed files, including all needed packages
// except the .dart files.
copy: {
build: {
files: [
{
expand: true,
src: [
'web/!(*.dart)',
'web/css/*.css',
'web/res/*.svg',
'web/packages/angular/**/!(*.dart)',
'web/packages/browser/**/!(*.dart)'
],
dest: 'build'
}
]
}
},
// 4.
// remove empty directories copied using the previous task
cleanempty: {
build: {
options: {
files: false
},
src: ['build/web/packages/**/*']
}
},
});
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
grunt.registerTask('default', [
'mkdir:build',
'dart2js',
'copy:build',
'cleanempty:build'
]);
};
所以這是Grunt腳本示例。
創建一個/gruntfile.js文件到項目的根目錄並複製/粘貼腳本。
創建/package.json文件到你的項目的根目錄,並複製/粘貼下面的腳本:
在Windows中,終端在Linux中
{
"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"
}
}
打開命令提示符,導航到你的項目的根目錄下,並使用此命令:
npm install
等到所有需要的Grunt模塊都會下載到您的本地項目中。一旦完成後,發出此命令在命令提示符或終端:
node -e "require('grunt').cli()"
您可以使用此啓動咕嚕默認任務,而無需在全球安裝在系統上咕嚕。
現在,要了解項目的確切構建結構(包括項目需要的包),請使用Pub Build進行構建。然後您將能夠指示Grunt創建相同的目錄結構。
如果需要,您可以添加其他任務(如縮小)。
希望這可以幫助大家瞭解這個過程,並首先讓您開始測試應用程序。添加您的評論,使其更好,並更加簡化。
另外,不要忘記縮小;),http://blog.sethladd.com/2013/03/i-shrunk-my-dart-to-js-code-by-11x-and.html –
你是對的@GökhanBarışAker,我沒有提到它,因爲當我使用這個時,縮小打破了部分JS代碼。不知道現在是否修復了。 – DrColossos
感謝您的幫助。我是否需要將實際的.dart文件包含在我的部署中?另外生成的.JS文件似乎在文件系統中有一個路徑,以便.dart文件也需要手動編輯這些路徑嗎? – Softinio