所以我被困在这个问题上的时间比我愿意承认的要长,但作为一个 Angular 新手,我完全感到困惑。

因此,我遵循一些在线教程,以便将 Gulp 实现到我正在处理的应用程序中,每当我运行 Gulp 任务时,我都会在 Chrome 中收到错误消息,其中指出:

"[Violation] Avoid using document.write().(anonymous) @ (index):13"

和:

//\/script>".replace("HOST", location.hostname)); //]]>

我更加困惑,因为 index.html 在执行之前实际上并不包含 document.write 引用。此外,尽管在集成 Gulp 时主要遵循教程,但我似乎无法在屏幕上反射(reflect) CSS 背景更改,这是否与前面提到的错误有关?

index.html

<!DOCTYPE html> 
<html> 
<head lang="en"> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> 
    <title>SmartSystemOverviewWeb</title> 
    <link rel="icon" type="image/x-icon" href="favicon.ico"> 
<link href="app/css/styles.css" rel="stylesheet"> 
</head> 
 
<body> 
<sso-dashboard>   
    Loading...     
  <i class="fa fa-spinner fa-spin"></i> 
</sso-dashboard> 
 
  <script type="text/typescript" src="app/vendor.ts"></script> 
  <!-- <script src="app/app.component.js"></script> --> 
</body> 
</html>

gulpfile.js

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 
var sourcemaps = require('gulp-sourcemaps'); 
var tsc = require('gulp-typescript'); 
var tslint = require('gulp-tslint'); 
var tsProject = tsc.createProject('tsconfig.json'); 
var config = require('./gulp.config')(); 
 
var browserSync = require('browser-sync').create(); 
var superstatic = require('superstatic'); 
var useref = require('gulp-useref'); 
var uglify = require('gulp-uglify'); 
var gulpIf = require('gulp-if'); 
var minifyCSS = require('gulp-minify-css'); 
var imagemin = require('gulp-imagemin'); 
var cache = require('gulp-cache'); 
var del = require('del'); 
var runSequence = require('run-sequence'); 
 
/* 
-- TOP LEVEL FUNCTIONS -- 
gulp.task - Define tasks 
gulp.src - point to files to use 
gulp.dest - point to folder to output 
gulp.watch - watch files + folders for changes 
*/ 
 
// Logs Message 
gulp.task('message', function(){ 
    return console.log('Gulp is running...'); 
}); 
 
gulp.task('ts-lint', function() { 
    console.log('ts-lint task running...'); 
    return gulp.src(config.allTs) 
        .pipe(tslint()) 
        .pipe(tslint({ 
            formatter: "verbose" 
        })) 
        // .pipe(tslint.report("verbose")) 
}) 
 
gulp.task('compile-ts', function() { 
    console.log('compile-ts task running...'); 
    var sourceTsFiles = [ 
        config.allTs, 
        config.typings 
    ]; 
 
    var tsResult = gulp 
    .src(sourceTsFiles) 
    .pipe(sourcemaps.init()) 
    .pipe(tsProject()) 
 
    return tsResult.js 
    .pipe(sourcemaps.write('.')) 
    .pipe(gulp.dest(config.tsOutputPath)); 
}); 
 
gulp.task('sass', function(){ 
    console.log('sass is running...'); 
    // return gulp.src('src/app/styles.scss') 
    return gulp.src('src/app/**/*.scss') 
      .pipe(sass()) // Using gulp-sass 
      .pipe(gulp.dest('src/app/css')) 
      .pipe(browserSync.reload({ 
        stream: true 
      })) 
    }); 
 
gulp.task('browserSync', function() { 
    console.log('browserSync is running...'); 
     
    browserSync.init({ 
        // port: 4200, 
        // file: ['index.html', '**/*.js'], 
        // injectChanges: true, 
        // logFileChanges: true, 
        // logLevel: 'verbose', 
        // notify: true, 
        // reloadDelay: 0, 
      server: { 
        baseDir: 'src', 
        middleware: superstatic({debug: false}) 
      }, 
    }) 
}) 
 
gulp.task('watch', ['browserSync', 'sass'], function(){ 
    gulp.watch('src/app/**/*.scss', ['sass']);  
    gulp.watch('src/app/component/**/*.scss', ['sass']);  
    // Reloads the browser whenever HTML or JS files change 
    gulp.watch('src/app/**/*.html', browserSync.reload); 
    gulp.watch('src/app/component/**/*.html', browserSync.reload); 
    gulp.watch('src/app/**/*.js', browserSync.reload); 
    gulp.watch('src/app/component/**/*.js', browserSync.reload);     
    gulp.watch('src/*.html', browserSync.reload);     
}) 
 
gulp.task('useref', function() { 
	var assets = useref.assets(); 
 
	return gulp.src('app/*.html') 
		.pipe(assets) 
		.pipe(gulpIf('*.css', minifyCSS())) 
		.pipe(gulpIf('*.js', uglify())) 
		.pipe(assets.restore()) 
		.pipe(useref()) 
		.pipe(gulp.dest('dist')) 
}); 
 
gulp.task('images', function() { 
	return gulp.src('app/images/**/*.+(png|jpg|jpeg|gif|svg)') 
	.pipe(cache(imagemin( { 
		interlaced: true 
	}))) 
	.pipe(gulp.dest('dist/images')) 
}); 
 
gulp.task('fonts', function() { 
	return gulp.src('app/fonts/**/*') 
	.pipe(gulp.dest('dist/fonts')) 
}); 
 
// Cleaning 
gulp.task('clean', function(callback) { 
	del('dist'); 
	return cache.clearAll(callback); 
}) 
 
 
gulp.task('clean:dist', function(callback) { 
	del(['dist/**/*', '!dist/images', '!dist/images/**/*'], callback) 
}); 
 
// Build Sequences 
gulp.task('build', function (callback) { 
	runSequence('clean:dist', 
		['sass', 'useref', 'images', 'fonts'], 
		callback 
		) 
}) 
 
gulp.task('default', function (callback) { 
	runSequence(['message', 'ts-lint', 'sass', 'browserSync', 'watch'], 
		callback 
		) 
})

样式.css

.testing { 
  width: 71.42857%; } 
 
.head { 
  background: red; } 
 
.body { 
  background: #177794; } 
 
.html { 
  background: green; }

任何解决这些问题的提示或建议将不胜感激!

提前致谢!

请您参考如下方法:

违规消息是由 browserSync 引起的,它会将以下行添加到文档中。

<script id="__bs_script__">//<![CDATA[ 
    document.write("<script async src='/browser-sync/browser-sync-client.js?v=2.23.3'><\/script>".replace("HOST", location.hostname)); 
//]]></script> 

这几乎可以忽略,因为它只会影响通过 browserSync 查看的应用程序,而不是最终应用程序。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!