Gulp Script [Gulp Watch] - 找不到模块'browser-sync'

问题描述 投票:1回答:2

所以我知道这个错误的其他实例,但无论我尝试了什么其他方式,我继续得到这个错误

 throw err;
^

Error: Cannot find module 'browser-sync'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\Users\shiha\Desktop\coding\html\myWebsite\gulpfile.js:3:19)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)

我已经尝试清理缓存并调用npm install以及npm i broswer-sync --save。没有什么变化。

这是我的gulp脚本的副本,但我不相信我做错了。

var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync');

gulp.task('browserSync', function() {
  browserSync.init({
    server: {
      baseDir: 'app'
    },
  })
})

gulp.task('sass', function() {
  return gulp.src('app/scss/**/*.scss')
    .pipe(sass())
    .pipe(gulp.dest('app/css'))
    .pipe(browserSync.reload({
      stream: true
    }))
});

gulp.task('watch', ['browserSync', 'sass'], function (){
  gulp.watch('app/scss/**/*.scss', ['sass']);
  // Reloads the browser whenever HTML or JS files change
  gulp.watch('app/*.html', browserSync.reload);
  gulp.watch('app/js/**/*.js', browserSync.reload);
});

我在Windows机器上npm -v = 5.6 node -v = 7.4

在此先感谢我刚刚卡住。另外这里是我的json的副本,因为起初我以为我错过了包,但我已经安装了它。当我回忆起npm安装时,我只是得到了“最新”

  "devDependencies": {
   "browser-sync": "^2.21.0",
    "gulp": "^3.9.1",
    "gulp-sass": "^3.1.0"
  }
}
javascript node.js gulp browser-sync gulp-watch
2个回答
1
投票

似乎缺少包,只需要进行npm安装。

npm install browser-sync --save


0
投票

我不能完全确认这是一个Windows问题,但解决这个问题的一种迂回方式,我发现是使用Windows bash终端而不是cmd或PowerShell。这样做就是打电话

npm install

现在应该安装所有必需的软件包,但是对于Linux环境。现在,如果你在cmd中调用你的gulp脚本它将无法工作,但如果你在windows bash终端中这样做,它将会。

© www.soinside.com 2019 - 2024. All rights reserved.