私はangularCLIを使って新しいangle2アプリを作成しました(私のディレクトリ構造を知っているので)。electron + angular2 loading vendor lib
ng serve
を実行すると、すべてのファイルがdist
フォルダに保存され、問題なくブラウザにhello world appが実行されます。
私は電子で同じアプリケーションを実行しようとしているが、それは、スクリプトSRCにファイルプロトコルを使用しているので、(@angularを含む)すべてのベンダーファイルを見つけることができません:
この
<script src="vendor/es6-shim/es6-shim.js"></script>
<script src="vendor/reflect-metadata/Reflect.js"></script>
<script src="vendor/systemjs/dist/system.src.js"></script>
<script src="vendor/zone.js/dist/zone.js"></script>
あなたが用途を電子file:
プロトコルで正しいパスを付加するにはどうすればよいこの
file:///vendor/es6-shim/es6-shim.js Failed to load resource: net::ERR_FILE_NOT_FOUND
file:///vendor/reflect-metadata/Reflect.js Failed to load resource: net::ERR_FILE_NOT_FOUND
file:///vendor/systemjs/dist/system.src.js Failed to load resource: net::ERR_FILE_NOT_FOUND
file:///vendor/zone.js/dist/zone.js Failed to load resource: net::ERR_FILE_NOT_FOUND
を生成しますか?
マイgulpfile.js
:
var gulp = require('gulp'),
del = require('del'),
runSeq = require('run-sequence');
gulp.task('clean-electron', function(){
return del('dist/electron-package/**/*', {force: true});
});
gulp.task('copy:electron-manifest', function(){
return gulp.src('./package.json')
.pipe(gulp.dest('./dist/electron-package'))
});
gulp.task('copy:electron-scripts', function(){
return gulp.src('./src/electron_main.js')
.pipe(gulp.dest('./dist/electron-package'));
});
gulp.task('copy:vendor-for-electron', function() {
return gulp.src('./dist/vendor/**/*')
.pipe(gulp.dest('./dist/electron-package/vendor'))
});
gulp.task('copy:spa-for-electron', function(){
return gulp.src(["./dist/*.*", "./dist/app/**/*"])
.pipe(gulp.dest('dist/electron-package'));
});
gulp.task('electron', function(done){
return runSeq('clean-electron', ['copy:spa-for-electron', 'copy:vendor-for-electron', 'copy:electron-manifest', 'copy:electron-scripts' ], done);
});
私が得た最も近いがこれをやっていた:
私のindex.html:
<script src="vendor/es6-shim/es6-shim.js"></script>
<script src="vendor/reflect-metadata/Reflect.js"></script>
<script src="vendor/systemjs/dist/system.src.js"></script>
<script src="vendor/zone.js/dist/zone.js"></script>
<script>
console.log("In my script tag:");
var systemConfigPath = 'system-config.js';
var mainPath = 'main.js';
if (window.location.protocol == "file:"){
require(__dirname + '/vendor/es6-shim/es6-shim.js');
require(__dirname + '/vendor/reflect-metadata/Reflect.js');
require(__dirname + '/vendor/systemjs/dist/system.src.js');
require(__dirname + '/vendor/zone.js/dist/zone.js');
systemConfigPath = __dirname + '/' + systemConfigPath;
mainPath = __dirname + '/' + mainPath ;
}
System.import(systemConfigPath).then(function() {
System.import(mainPath);
}).catch(console.error.bind(console));
が、それはまだ私のような問題を与えますベンダーファイルは同じディレクトリ内の他のファイルを参照します:
編集:
私は今(なし成功して)私の電子アプリケーションを構築するためにWebPACKのを使用しようとしています。
コードを表示したい場合は、github repoも作成しました。
私は...私はあなたを愛しています... – Jeff
私はデフォルトルーティングについてここに別の質問を掲載しようとしていました...それはうまくいかなかった...ありがとう! – Jeff
愛に感謝します! – DavidC