Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'webpack-stream' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
gulp.task('scripts', (cb) => {
return gulp.src('app/scripts/*.js')
.pipe(plumber({
// Webpack will log the errors
errorHandler () {}
}))
.pipe(named())
.pipe(gulpWebpack({
devtool: args.sourcemaps ? 'inline-source-map' : false,
watch: args.watch,
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(ENV),
'process.env.VENDOR': JSON.stringify(args.vendor)
})
].concat(args.production ? [
new BabiliPlugin()
] : []),
module: {
rules: [{
test: /\.js$/,
loader: 'babel-loader'
}]
}
externals: [/^[-/a-zA-Z0-9]+$/, /^@babel\/.+$/],
target: opts.target,
node: {
fs: 'empty',
net: 'empty',
path: 'empty',
child_process: 'empty',
util: 'empty',
},
output: {
filename: filename,
libraryTarget: opts.libraryTarget,
library: opts.libraryName,
},
plugins: [
new webpackStream.webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(
isProduction ? 'production' : 'development',
),
}),
new webpackStream.webpack.optimize.OccurrenceOrderPlugin(),
],
};
if (isProduction && !opts.noMinify) {
// See more chunks configuration here: https://gist.github.com/sokra/1522d586b8e5c0f5072d7565c2bee693
webpackOpts.optimization = {
minimize: true,
};
}
return webpackStream(webpackOpts, webpack, function(err, stats) {
if (err) {
throw new gulpUtil.PluginError('webpack', err);
'fs': 'empty'
},
output: {
// The output filename
filename: PROD ? 'jbb.min.js' : 'jbb.js',
// Export itself to a global var
libraryTarget: 'var',
// Name of the global var: 'JBB.BinaryLoader'
library: [ 'JBB', 'BinaryLoader' ]
},
externals: {
'three': 'THREE',
},
plugins: ([
new webpack.webpack.optimize.DedupePlugin(),
new webpack.webpack.DefinePlugin({
GULP_BUILD : PROD
})
]).concat(PROD ? [
new webpack.webpack.optimize.UglifyJsPlugin({
minimize: true
})
] : [])
}))
.pipe(header("/* JBB Binary Bundle Loader - https://github.com/wavesoft/jbb */\n"))
.pipe(gulp.dest('dist'));
});
.pipe(plumber())
.pipe(webpack({
output: {
filename: 'build.js',
pathinfo: true,
sourcePrefix: '\t\t\t'
},
resolve: {
root: path.join(__dirname, 'app', 'js')
},
devtool: 'source-map',
plugins: [
// fix compilation persistence
new webpack.webpack.optimize.OccurenceOrderPlugin(true),
// global constants
new webpack.webpack.DefinePlugin({
DEBUG: false
})
]
}, null/*, report*/))
.pipe(gulp.dest('tests'));
});
.src(path.join(global.paths.app, 'js', 'main.js'))
.pipe(plumber())
.pipe(webpack({
output: {
filename: 'release.js'
},
resolve: {
extensions:['', '.js']
},
debug: false,
cache: false,
plugins: [
// fix compilation persistence
new webpack.webpack.optimize.OccurenceOrderPlugin(true),
// global constants
new webpack.webpack.DefinePlugin({
DEBUG: false
}),
// obfuscation
new webpack.webpack.optimize.UglifyJsPlugin({
// this option prevents name changing
// use in case of strange errors
// mangle: false,
output: {
comments: false
},
/*eslint camelcase:0 */
compress: {
warnings: true,
unused: true,
dead_code: true,
drop_console: true,
// merged with defaults
// for :dev task
dev: {
devtool: 'eval'
},
// merged with defaults
// for :prod task
prod: {
plugins: [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(true),
new webpack.optimize.UglifyJsPlugin({
sourceMap: false,
comments: false,
screw_ie8: true,
compress: {
drop_console: true,
unsafe: true,
unsafe_comps: true,
screw_ie8: true,
warnings: false
}
})
],
eslint: {
failOnError: true,
failOnWarning: true
}
keepalive: true
},
// merged with defaults
// for :dev task
dev: {
devtool: 'eval'
},
// merged with defaults
// for :prod task
prod: {
plugins: [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(true),
new webpack.optimize.UglifyJsPlugin({
sourceMap: false,
comments: false,
screw_ie8: true,
compress: {
drop_console: true,
unsafe: true,
unsafe_comps: true,
screw_ie8: true,
warnings: false
}
})
],
eslint: {
failOnError: true,
export function buildForTest() {
if (args.watch) {
return gulp.src(["tests/entry.js"])
.pipe(gulpWebpack(getWebpackConfig(true)))
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(espower())
.pipe(sourcemaps.write())
.pipe(gulp.dest("tmp/scripts"));
} else {
return gulp.src(["tests/entry.js"])
.pipe(gulpWebpack(getWebpackConfig(true)))
.pipe(gulp.dest("tmp/scripts"));
}
}
test: /\.html$/,
use: {
loader: 'dust-loader'
}
}
]
},
mode: $.util.env.production ? 'production' : 'development',
optimization: {
minimize: $.util.env.production ? true : false,
},
plugins: [
new webpack.webpack.DefinePlugin({
VERSION: JSON.stringify(_.pkg.version)
}),
new webpack.webpack.BannerPlugin('Build Version: ' + _.pkg.version),
$.util.env.production ? $.util.noop : new HardSourceWebpackPlugin()
],
devtool: $.util.env.production ? '' : 'eval-source-map'
}))
.pipe($.preprocess(_.preprocessContext))
.pipe((_.isProdEnv()) ? gulp.dest(_.paths.dest.default) : gulp.dest(_.paths.dest.files))
.pipe($.filter(f => /checkout/.test(f.path)))
.pipe($.rename(file => file.basename = file.basename.replace('.min', '')))
.pipe(gulp.dest(_.paths.dest.files));
};
output: {
filename: '[id].worker.js'
}
}
}
if (developmentMode) {
config.devtool = 'inline-source-map'
} else {
config.plugins.push(
new webpack.optimize.UglifyJsPlugin(),
new webpack.optimize.DedupePlugin(),
new webpack.NoErrorsPlugin()
)
}
return gulp.src('')
.pipe(webpackStream(config, null, (err, stats) => {
if (!err) {
$.util.log(stats.toString({
colors: $.util.colors.supportsColor,
chunks: !developmentMode,
chunkModules: !developmentMode
}))
browserSync.reload()
}
}))
.pipe(gulp.dest('./public'))
})