const gulp = require('gulp')
const less = require('gulp-less')
const cssmin = require('gulp-clean-css')
const rename = require('gulp-rename')
const clean = require('gulp-clean')
const eslint = require('gulp-eslint')
gulp.task('compile-css', () => {
return gulp
.src(['../src/**/*.less', '!../src/**/_*.less'])
.pipe(less())
.pipe(cssmin())
.pipe(
rename((path) => {
path.extname = '.wxss'
})
)
.pipe(gulp.dest('../dist/'))
})
gulp.task('compile-js', () => {
return gulp.src(['../src/**/*.js']).pipe(gulp.dest('../dist/'))
})
gulp.task('compile-wxs', () => {
return gulp.src(['../src/**/*.wxs']).pipe(gulp.dest('../dist/'))
})
gulp.task('compile-json', () => {
return gulp.src(['../src/**/*.json']).pipe(gulp.dest('../dist/'))
})
gulp.task('compile-wxml', () => {
return gulp.src(['../src/**/*.wxml']).pipe(gulp.dest('../dist/'))
})
gulp.task('clean', () => {
return gulp.src('../dist/').pipe(clean({ force: true }))
})
gulp.task('compile-png', () => {
return gulp.src(['../src/**/*.png']).pipe(gulp.dest('../dist/'))
})
gulp.task('auto', () => {
gulp.watch('../src/**/*.less', ['compile-css'])
gulp.watch('../src/**/*.js', ['eslint', 'compile-js'])
gulp.watch('../src/**/*.json', ['compile-json'])
gulp.watch('../src/**/*.wxml', ['compile-wxml'])
gulp.watch('../src/**/*.wxs', ['compile-wxs'])
gulp.watch('../src/**/*.png', ['compile-png'])
})
gulp.task('eslint', () => {
return gulp
.src(['../src/**/*.js', '!../node_modules/**'])
.pipe(eslint({ configFile: '../.eslintrc.js' }))
.pipe(eslint.format())
})
gulp.task('default', ['clean'], function() {
gulp.start('compile-png', 'compile-css', 'compile-wxs', 'compile-js', 'compile-json', 'compile-wxml', 'auto')
})
複製代碼
如下爲 package.json 文件css
如下爲 eslitnt 配置node
module.exports = {
extends: ["prettier", "prettier/standard"],
//插件
plugins: ["prettier"],
//配置解析器
parser: "babel-eslint",
parserOptions: {
ecmaVersion: 6,
sourceType: "module",
},
env: {
//腳本目標的運行環境
browser: true,
node: true,
es6: true,
commonjs: true,
},
//全局變量
globals: {
__DEV__: true,
__WECHAT__: true,
__ALIPAY__: true,
App: true,
Page: true,
Component: true,
Behavior: true,
wx: true,
getApp: true,
},
//規則,只用插件:插件名/規則
rules: {
"prettier/prettier": [
"error",
{
singleQuote: true,
endOfLine: "crlf",
stylelintIntegration: true,
tabWidth: 4,
semi: false,
printWidth: 200,
// "trailingComma": "none"
bracketSpacing: true,
"comma-dangle": "object",
"prose wrap": "always",
arrowParens: "always",
eslintIntegration: true,
// "dot-location": ["error", "object"]
},
],
"no-console": 0,
// "dot-location": ["error", "object"]
},
};
複製代碼
記得裝 eslint 插件es6