基本NPM,Gulp设置

时间:2015-07-28 19:20:10

标签: javascript node.js npm browserify

我尝试自动化我的前端开发,所以我开始使用NPM来引入依赖关系。我的package.json看起来像是:

"main": "main.js",
"dependencies": {
  "jquery": "^2.1.4",
  "vue": "^0.12.8"
},
"devDependencies": {
  "gulp": "^3.9.0",
  "gulp-autoprefixer": "^2.3.1",
  "gulp-browserify": "^0.5.1",
  "gulp-concat": "^2.6.0",
  "gulp-minify-css": "^1.2.0",
  "gulp-notify": "^2.2.0",
  "gulp-rename": "^1.2.2",
  "gulp-sass": "^2.0.4",
  "gulp-uglify": "^1.2.0"
}

我的gulpfile.json看起来像是:

var gulp       = require('gulp'),
    sass       = require('gulp-sass'),
    minify_css = require('gulp-minify-css'),
    notify     = require('gulp-notify'),
    autoprefix = require('gulp-autoprefixer'),
    concat     = require('gulp-concat'),
    uglify     = require('gulp-uglify'),
    rename     = require('gulp-rename');

var src = {
    sass: 'assets/sass/',
    js: 'assets/js/',
};

var output = {
    css: 'public/css/',
    js: 'public/js/',
};

gulp.task('css', function () {
    return gulp.src(src.sass + 'main.scss')
        .pipe(sass())
        .pipe(autoprefix('last 10 version'))
        .pipe(minify_css())
        .pipe(rename({basename: 'styles'}))
        .pipe(gulp.dest(output.css))
        .pipe(notify('CSS processed.'))
        .pipe(browserSync.reload({stream: true}));
});

gulp.task('js', function () {
    return gulp.src([
            src.js + 'main.js',
        ])
        .pipe(concat('app.js'))
        .pipe(uglify())
        .pipe(gulp.dest(output.js))
        .pipe(notify('JS processed.'));
});

gulp.task('watch', function () {
    browserSync.init({server: './output'});
    gulp.watch(src.sass + '**/*.scss', ['css']);
    gulp.watch(src.js + '**/*.js', ['js']);
    gulp.watch(src.js + '**/*.js', ['js']);
});

gulp.task('default', ['css', 'js', 'watch']);

有效!太好了!

我想开始在main.js中编写代码,但是我遇到的问题是如何将require jQuery和Vue(以及其他任何内容)写入{{1}文件

(编辑:它不一定要在main.js文件中完成,我只希望最终结果是我可以按预期编写代码并缩小它。看来我可以& #39; t main.js在gulp js任务中,但也许我错误地解决了这个问题。)

1 个答案:

答案 0 :(得分:0)

由于您只为构建/工作流程使用节点,因此您不会在应用程序代码中调用Node的导出(希望如此)。所以简短的回答是,不过你以前就是这么做的。

编辑:我看到您已使用browserify标记了该问题。如果你正在尝试使用browserify,那么你需要做的就是运行一个gulp任务运行browserify命令,然后它会处理你的依赖关系。节点的要求,就是你当前在你的gulpfile中调用的,是一种不同的动物。它用于确保您拥有所需的所有软件包,但您需要运行browserify,以便您的应用代码中的需求能够正常运行。