webpack
DllPlugin और DllReferencePlugin
खोज…
परिचय
Dll और DllReference प्लगइन्स कोड को एक तरह से कई बंडलों में विभाजित करने की अनुमति देते हैं, बंडलों को स्वतंत्र रूप से संकलित किया जा सकता है।
एक पुस्तकालय में "विक्रेता" स्क्रिप्ट का निर्माण करना संभव है, जिसे अक्सर संकलित करने की आवश्यकता नहीं है (उदाहरण के लिए: प्रतिक्रिया, jQuery, बूटस्ट्रैप, Fontawesome ...) और इसे अपने ऐप बंडल में संदर्भ दें, जिन्हें उन स्क्रिप्ट की आवश्यकता होगी।
एप्लिकेशन बंडल, वह जो लगातार बदला जा रहा है, एक अलग कॉन्फ़िगरेशन में होगा जो पहले से ही निर्मित "विक्रेता" बंडल को संदर्भित करता है।
वाक्य - विन्यास
- new webpack.DllPlugin ({पथ: '[नाम] -manifest.json', नाम: '[नाम] _ [हैश] ’})
- नया वेबपैक .llReferencePlugin ({संदर्भ: __dirname, मैनिफ़ेस्ट: आवश्यकता (''/ packname-default.json')})
विक्रेता कॉन्फ़िगरेशन (DllPlugin)
नोट: output.library
और name
(DllPlugin में) समान होना चाहिए।
const path = require('path');
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const extractCSS = new ExtractTextPlugin('vendor.css');
const isDevelopment = process.env.NODE_ENV !== 'production';
module.exports = {
resolve: {
extensions: ['.js'],
},
module: {
rules: [
{ test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'url-loader?limit=100000' },
{ test: /\.s?css$/i, loader: extractCSS.extract(['css-loader?minimize', 'sass-loader']) },
{ test: /\.json$/, loader: 'json-loader' },
],
},
entry: {
vendor: [
'babel-polyfill',
'font-awesome/scss/font-awesome.scss',
'bootstrap/scss/bootstrap.scss',
'jquery',
'history',
'react',
'react-dom',
'redux',
'react-redux',
'react-router',
'react-router-dom',
'react-router-redux',
'redux-thunk',
],
},
output: {
path: path.resolve('./dist'),
filename: '[name].js',
library: '[name]_[hash]',
},
plugins: [
extractCSS,
new webpack.DllPlugin({
path: path.join(__dirname, 'dist', '[name]-manifest.json'),
name: '[name]_[hash]',
})
].concat(isDevelopment ? [] : [
new webpack.optimize.UglifyJsPlugin({
beautify: false,
comments: false,
}),
]),
};
एक Dll बंडल (DllReferencePlugin) का संदर्भ लेना
नोट: manifest
(DllReferencePlugin में) संदर्भ path
(DllPlugin में परिभाषित) होना चाहिए
const webpack = require('webpack');
const path = require('path');
const isDevelopment = process.env.NODE_ENV !== 'production';
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const extractCSS = new ExtractTextPlugin('app.css');
const merge = require('extendify')({ isDeep: true, arrays: 'concat' });
module.exports = merge({
context: __dirname,
entry: {
app: (isDevelopment ? ['webpack-hot-middleware/client'] : []).concat(['./src/']),
},
output: {
path: path.resolve('./dist'),
publicPath: '/static',
filename: '[name].js',
},
resolve: {
extensions: ['.js', '.ts', '.tsx'],
},
module: {
loaders: [
{
test: /\.tsx?$/,
loader: 'babel-loader!awesome-typescript-loader?forkChecker=true',
include: /src|spec/,
},
{
test: /\.s?css$/,
loader: extractCSS.extract(['css-loader?minimize', 'sass-loader']),
include: /src/,
},
],
},
plugins: [
new webpack.DllReferencePlugin({
context: __dirname,
manifest: require('./dist/vendor-manifest.json'),
}),
new webpack.DefinePlugin({
'process.env': {
'ENV': JSON.stringify(process.env.NODE_ENV),
},
}),
extractCSS,
],
}, isDevelopment ? require('./webpack.config.development') : require('./webpack.config.production'));
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow