From 2236ba4cd205264580d2ba5b42bd5a10903a64f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=A3=AB=E6=8C=AF?= <2473872761@qq.com> Date: Fri, 20 Sep 2019 10:16:35 +0800 Subject: [PATCH 1/5] export wheel.min --- .yarnrc | 2 + gulpfile.js | 180 +++++++++++++++++++++++++++++++++++++++++++ package.json | 10 ++- wheel-index.html | 195 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 383 insertions(+), 4 deletions(-) create mode 100644 .yarnrc create mode 100644 gulpfile.js create mode 100755 wheel-index.html diff --git a/.yarnrc b/.yarnrc new file mode 100644 index 0000000..f46410e --- /dev/null +++ b/.yarnrc @@ -0,0 +1,2 @@ +--registry "https://registry.npm.taobao.org" +--no-lockfile true diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..2f935bf --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,180 @@ +const gulp = require('gulp'); +const webpack = require("webpack"); +const ws = require('webpack-stream'); +const autoprefixer = require("autoprefixer"); +const ExtractTextPlugin = require("extract-text-webpack-plugin"); +const pkg = require("./package.json"); + +gulp.task('build:wheel-picker', (cb) => { + const dest = './dist/'; + console.log(cb) + const banner = ` WheelPicker v${pkg.version} + ${pkg.homepage} + Licensed under the ${pkg.license} License`; + return gulp.src(['./src/WheelPicker.js']) + .pipe(ws({ + entry: { + wheelpicker: "./src/WheelPicker.js" + }, + output: { + path: __dirname + "/dist", + filename: "[name].min.js", + library: "WheelPicker", + libraryTarget: "umd" + }, + module: { + loaders: [{ + test: /\.scss$/, + loader: ExtractTextPlugin.extract(["css", "sass-loader!postcss-loader"]) + }] + }, + plugins: [ + new webpack.optimize.UglifyJsPlugin({ minimize: true }), + new ExtractTextPlugin("[name].min.css"), + new webpack.BannerPlugin(banner, { entryOnly: true }) + ], + postcss: function () { + return [autoprefixer]; + } + }, webpack)) + .on('error', (e) => { + cb(e); + }) + .pipe(gulp.dest(dest)); +}); + +gulp.task('build:wheel', (cb) => { + const dest = './dist/'; + const banner = ` Wheel v${pkg.version} + ${pkg.homepage} + Licensed under the ${pkg.license} License`; + return gulp.src(['./src/Wheel.js']) + .pipe(ws({ + entry: { + wheel: "./src/Wheel.js" + }, + output: { + path: __dirname + "/dist", + filename: "[name].min.js", + library: "Wheel", + libraryTarget: "umd" + }, + module: { + loaders: [{ + test: /\.scss$/, + loader: ExtractTextPlugin.extract(["css", "sass-loader!postcss-loader"]) + }] + }, + plugins: [ + new webpack.optimize.UglifyJsPlugin({ minimize: true }), + new ExtractTextPlugin("[name].min.css"), + new webpack.BannerPlugin(banner, { entryOnly: true }) + ], + postcss: function () { + return [autoprefixer]; + } + }, webpack)) + .on('error', (e) => { + cb(e); + }) + .pipe(gulp.dest(dest)); +}); + +gulp.task('watch:wheel-picker', async (cb) => { + await sleep(10000); + const dest = './dist/'; + console.log(cb) + const banner = ` WheelPicker v${pkg.version} + ${pkg.homepage} + Licensed under the ${pkg.license} License`; + return gulp.src(['./src/WheelPicker.js']) + .pipe(ws({ + watch: true, + watchOptions: { + aggregateTimeout: 300, + poll: 1000, + ignored: /node_modules/ + }, + mode: 'none', + entry: { + wheelpicker: "./src/WheelPicker.js" + }, + output: { + path: __dirname + "/dist", + filename: "[name].min.js", + library: "WheelPicker", + libraryTarget: "umd" + }, + module: { + loaders: [{ + test: /\.scss$/, + loader: ExtractTextPlugin.extract(["css", "sass-loader!postcss-loader"]) + }] + }, + plugins: [ + new ExtractTextPlugin("[name].min.css"), + new webpack.BannerPlugin(banner, { entryOnly: true }) + ], + postcss: function () { + return [autoprefixer]; + } + }, webpack)) + .on('error', (e) => { + cb(e); + }) + .pipe(gulp.dest(dest)); +}); + +gulp.task('watch:wheel', async (cb) => { + await sleep(10000); + const dest = './dist/'; + const banner = ` Wheel v${pkg.version} + ${pkg.homepage} + Licensed under the ${pkg.license} License`; + return gulp.src(['./src/Wheel.js']) + .pipe(ws({ + watch: true, + watchOptions: { + aggregateTimeout: 300, + poll: 1000, + ignored: /node_modules/ + }, + mode: 'none', + entry: { + wheel: "./src/Wheel.js" + }, + output: { + path: __dirname + "/dist", + filename: "[name].min.js", + library: "Wheel", + libraryTarget: "umd" + }, + module: { + loaders: [{ + test: /\.scss$/, + loader: ExtractTextPlugin.extract(["css", "sass-loader!postcss-loader"]) + }] + }, + plugins: [ + new ExtractTextPlugin("[name].min.css"), + new webpack.BannerPlugin(banner, { entryOnly: true }) + ], + postcss: function () { + return [autoprefixer]; + } + }, webpack)) + .on('error', (e) => { + cb(e); + }) + .pipe(gulp.dest(dest)); +}); + +function sleep(timeout) { + return new Promise((resolve) => { + setTimeout(resolve, timeout); + }) +} + +gulp.task('watch', gulp.parallel('watch:wheel', 'watch:wheel-picker')); + +gulp.task('default', gulp.parallel('build:wheel', 'build:wheel-picker')); diff --git a/package.json b/package.json index 7fa5c15..6452d3b 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "滚动选择" ], "scripts": { - "build": "webpack --optimize-minimize", - "dev": "webpack --progress --colors --watch" + "build": "gulp", + "dev": "gulp && gulp watch & live-server" }, "author": "Cople", "license": "MIT", @@ -25,6 +25,8 @@ "postcss-loader": "^0.9.1", "sass-loader": "^3.2.3", "style-loader": "^0.13.1", - "webpack": "^1.13.2" + "webpack": "^1.13.2", + "gulp": "4.0.2", + "webpack-stream": "5.2.1" } -} +} \ No newline at end of file diff --git a/wheel-index.html b/wheel-index.html new file mode 100755 index 0000000..dfcb2b2 --- /dev/null +++ b/wheel-index.html @@ -0,0 +1,195 @@ + + + +
+ +