0

我有以下 package.json 文件:

{
  "name": "ASP.NET",
  "version": "1.0.0",
  "devDependencies": {
    "gulp": "3.8.11",
    "gulp-inject": "1.5.0",
    "gulp-util": "3.0.6",
    "gulp-print": "1.1.0",
    "gulp-cssmin": "0.1.7",
    "gulp-uglify": "1.2.0",
    "gulp-load-plugins": "0.9.0",
    "del": "1.2.0",
    "wiredep": "3.0.0-beta",
    "jshint": "2.8.0",
    "jshint-stylish": "2.0.1"
  }
}

var gulp = require('gulp'),
    util = require('gulp-util'),
    print = require('gulp-print'),
    inject = require('gulp-inject'),
    del = require('del'),
    cssmin = require('gulp-cssmin'),
    jshint = require('gulp-jshint')
    uglify = require('gulp-uglify'),
    wiredep = require('wiredep').stream,
    bowerJson = require('./bower.json')
    gulp = require('gulp'),
    project = require('./project.json');

gulp.task('wiredep', function () {
    log('Placing Bower Components from ' + paths.bowerComponents + ' in ' + paths.layoutPage)
    return gulp
        .src(paths.layoutPage)
        .pipe(wiredep({
            bowerJson: bowerJson,
            directory: paths.bowerComponents,
            ignorePath: '../..'
        }))
        .pipe($.inject(gulp.src([
            paths.jsMain,
            paths.jsContent])))
        .pipe(gulp.dest(paths.layoutPage));
});

当我为 bower.json 运行此任务时,出现错误:

[16:11:31] 使用 gulpfile C:\MyProject\src\MyProject\Gulpfile.js
[16:11:31] 开始 'wiredep'...
[16:11:31] 从 ./bower_components/ 放置 Bower 组件在 ./Views/Shared/_Layout.cshtml
[16:11:31] 'wiredep' 在 5.7 毫秒后出错
进程以代码 1 终止。
[16:11:31] ReferenceError: $ 未定义

为什么 $ 没有定义,我怎样才能定义它?

我尝试的是添加"jquery": "2.1.4",到 package.json 中的 devDependencies。

4

2 回答 2

0

gulp-inject通过阅读文档的 gulpfile.js 部分,我发现我不需要$在它前面放一个。要求注入并直接引用它是有效的。例如,

var inject = require('gulp-inject'),

gulp.task('inject', ['wiredep'], function () {
    log('Wire up the css and js into ' + paths.layoutPage);
    return gulp
        .src(paths.layoutPage)
        .pipe(inject(gulp.src([paths.js, paths.css], { read: false }), { ignorePath: project.webroot }))
        .pipe(gulp.dest(paths.layoutPagePath));
});

$我认为可以直接使用并将var $ = require('jquery')jquery 添加到 package.json 中。如我错了请纠正我。

于 2015-07-26T15:48:54.600 回答
-2

刚才我的项目也出现了这种现象。最后我发现gulp缺少一个名为'gulp-load-plugins'的插件;安装后我们应该声明将 package.json 中的所有插件放入 $ 字符;它是 var $=require('gulp-load-plugins')();

于 2016-09-12T09:34:28.803 回答