mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-11-30 02:32:58 +05:30
Bump webpack to v2
This commit is contained in:
parent
627d503d43
commit
b21f650ec6
@ -107,7 +107,7 @@
|
|||||||
"mocha": "^6.1.4",
|
"mocha": "^6.1.4",
|
||||||
"node-sass": "^4.7.2",
|
"node-sass": "^4.7.2",
|
||||||
"postcss-import": "^9.0.0",
|
"postcss-import": "^9.0.0",
|
||||||
"postcss-loader": "^1.2.0",
|
"postcss-loader": "^3.0.0",
|
||||||
"postcss-scss": "^0.4.0",
|
"postcss-scss": "^0.4.0",
|
||||||
"postcss-url": "SleepWalker/postcss-url#switch-to-async-api",
|
"postcss-url": "SleepWalker/postcss-url#switch-to-async-api",
|
||||||
"raw-loader": "^0.5.1",
|
"raw-loader": "^0.5.1",
|
||||||
@ -120,8 +120,8 @@
|
|||||||
"unexpected": "^11.6.1",
|
"unexpected": "^11.6.1",
|
||||||
"unexpected-sinon": "^10.5.1",
|
"unexpected-sinon": "^10.5.1",
|
||||||
"url-loader": "^0.5.7",
|
"url-loader": "^0.5.7",
|
||||||
"webpack": "^1.12.9",
|
"webpack": "^2.0.0",
|
||||||
"webpack-dev-server": "^1.14.0",
|
"webpack-dev-server": "^2.0.0",
|
||||||
"webpack-utils": "file:./webpack-utils"
|
"webpack-utils": "file:./webpack-utils"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3
postcss.config.js
Normal file
3
postcss.config.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
plugins: {}
|
||||||
|
};
|
@ -13,7 +13,7 @@ export default `
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
${require('!!css!postcss!sass!index.scss')[0][1]}
|
${require('!!css-loader!postcss-loader!sass-loader!index.scss')[0][1]}
|
||||||
${require('!!css!postcss!sass!components/ui/loader/loader.scss')[0][1]}
|
${require('!!css-loader!postcss-loader!sass-loader!components/ui/loader/loader.scss')[0][1]}
|
||||||
</style>
|
</style>
|
||||||
`;
|
`;
|
||||||
|
@ -34,14 +34,14 @@ export default {
|
|||||||
messages: { [string]: string };
|
messages: { [string]: string };
|
||||||
}> {
|
}> {
|
||||||
const promises: Array<Promise<*>> = [
|
const promises: Array<Promise<*>> = [
|
||||||
new Promise(require(`bundle?name=[name]!react-intl/locale-data/${locale}.js`)),
|
new Promise(require(`bundle-loader?name=[name]!react-intl/locale-data/${locale}.js`)),
|
||||||
new Promise(require(`bundle?name=[name]!i18n/${locale}.json`))
|
new Promise(require(`bundle-loader?name=[name]!i18n/${locale}.json`))
|
||||||
];
|
];
|
||||||
|
|
||||||
if (needPolyfill) {
|
if (needPolyfill) {
|
||||||
// $FlowFixMe
|
// $FlowFixMe
|
||||||
promises.push(new Promise(require('bundle?name=intl!intl')));
|
promises.push(new Promise(require('bundle-loader?name=intl!intl')));
|
||||||
promises.push(new Promise(require(`bundle?name=[name]-polyfill-data!intl/locale-data/jsonp/${locale}.js`)));
|
promises.push(new Promise(require(`bundle-loader?name=[name]-polyfill-data!intl/locale-data/jsonp/${locale}.js`)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return Promise.all(promises)
|
return Promise.all(promises)
|
||||||
|
@ -101,8 +101,8 @@ const webpackConfig = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
resolve: {
|
resolve: {
|
||||||
root: rootPath,
|
modules: [rootPath, 'node_modules'],
|
||||||
extensions: ['', '.js', '.jsx']
|
extensions: ['.js', '.jsx', '.json']
|
||||||
},
|
},
|
||||||
|
|
||||||
externals: isTest ? {
|
externals: isTest ? {
|
||||||
@ -167,27 +167,41 @@ const webpackConfig = {
|
|||||||
],
|
],
|
||||||
|
|
||||||
module: {
|
module: {
|
||||||
loaders: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /\.scss$/,
|
test: /\.scss$/,
|
||||||
extractInProduction: true,
|
use: [
|
||||||
loader: `style!css?${ JSON.stringify(cssLoaderQuery) }!sass!postcss?syntax=postcss-scss`
|
'style-loader',
|
||||||
|
{
|
||||||
|
loader: 'css-loader',
|
||||||
|
options: cssLoaderQuery
|
||||||
|
},
|
||||||
|
'sass-loader',
|
||||||
|
{
|
||||||
|
loader: 'postcss-loader',
|
||||||
|
options: {
|
||||||
|
syntax: 'postcss-scss',
|
||||||
|
ident: 'postcss',
|
||||||
|
plugins: postcss
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.jsx?$/,
|
test: /\.jsx?$/,
|
||||||
exclude: /node_modules/,
|
exclude: /node_modules/,
|
||||||
loader: 'babel?cacheDirectory=true'
|
loader: 'babel-loader?cacheDirectory=true'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.(png|gif|jpg|svg)$/,
|
test: /\.(png|gif|jpg|svg)$/,
|
||||||
loader: 'file',
|
loader: 'file-loader',
|
||||||
query: {
|
query: {
|
||||||
name: 'assets/[name].[ext]?[hash]'
|
name: 'assets/[name].[ext]?[hash]'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.(woff|woff2|ttf)$/,
|
test: /\.(woff|woff2|ttf)$/,
|
||||||
loader: 'file',
|
loader: 'file-loader',
|
||||||
query: {
|
query: {
|
||||||
name: 'assets/fonts/[name].[ext]?[hash]'
|
name: 'assets/fonts/[name].[ext]?[hash]'
|
||||||
}
|
}
|
||||||
@ -196,19 +210,19 @@ const webpackConfig = {
|
|||||||
{
|
{
|
||||||
test: /\.json$/,
|
test: /\.json$/,
|
||||||
exclude: /(intl|font)\.json/,
|
exclude: /(intl|font)\.json/,
|
||||||
loader: 'json'
|
loader: 'json-loader'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.html$/,
|
test: /\.html$/,
|
||||||
loader: 'html'
|
loader: 'html-loader'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.intl\.json$/,
|
test: /\.intl\.json$/,
|
||||||
loader: 'babel!intl'
|
loader: 'babel-loader!intl'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.font\.(js|json)$/,
|
test: /\.font\.(js|json)$/,
|
||||||
loader: 'raw!fontgen'
|
loader: 'raw-loader!fontgen-loader'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -218,62 +232,21 @@ const webpackConfig = {
|
|||||||
intl: path.resolve('webpack-utils/intl-loader')
|
intl: path.resolve('webpack-utils/intl-loader')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
postcss() {
|
|
||||||
return [
|
|
||||||
cssImport({
|
|
||||||
path: rootPath,
|
|
||||||
|
|
||||||
resolve: ((defaultResolve) =>
|
|
||||||
(url, basedir, importOptions) =>
|
|
||||||
defaultResolve(loaderUtils.urlToRequest(url), basedir, importOptions)
|
|
||||||
)(require('postcss-import/lib/resolve-id')),
|
|
||||||
|
|
||||||
load: ((defaultLoad) =>
|
|
||||||
(filename, importOptions) => {
|
|
||||||
if (/\.font.(js|json)$/.test(filename)) {
|
|
||||||
if (!fileCache[filename] || !isProduction) {
|
|
||||||
// do not execute loader on the same file twice
|
|
||||||
// this is an overcome for a bug with ExtractTextPlugin, for isProduction === true
|
|
||||||
// when @imported files may be processed mutiple times
|
|
||||||
fileCache[filename] = new Promise((resolve, reject) =>
|
|
||||||
this.loadModule(filename, (err, source) =>
|
|
||||||
err ? reject(err) : resolve(this.exec(source, rootPath))
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return fileCache[filename];
|
|
||||||
}
|
|
||||||
|
|
||||||
return defaultLoad(filename, importOptions);
|
|
||||||
}
|
|
||||||
)(require('postcss-import/lib/load-content'))
|
|
||||||
}),
|
|
||||||
|
|
||||||
cssUrl(this)
|
|
||||||
];
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (isProduction) {
|
if (isProduction) {
|
||||||
webpackConfig.module.loaders.forEach((loader) => {
|
webpackConfig.module.loaders.forEach((loader) => {
|
||||||
if (loader.extractInProduction) {
|
if (loader.use && loader.use[0] === 'style') {
|
||||||
// remove style-loader from chain and pass through ExtractTextPlugin
|
// remove style-loader from chain and pass through ExtractTextPlugin
|
||||||
const parts = loader.loader.split('!');
|
loader.use = ExtractTextPlugin.extract({
|
||||||
|
fallbackLoader: loader.use[0], // style-loader
|
||||||
loader.loader = ExtractTextPlugin.extract(
|
loader: loader.use,
|
||||||
parts[0], // style-loader
|
});
|
||||||
parts.slice(1) // css-loader and rest
|
|
||||||
.join('!')
|
|
||||||
.replace(/[&?]sourcemap/, '')
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
webpackConfig.plugins.push(
|
webpackConfig.plugins.push(
|
||||||
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js?[hash]'),
|
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js?[hash]'),
|
||||||
new webpack.optimize.OccurenceOrderPlugin(true),
|
|
||||||
new webpack.optimize.DedupePlugin(),
|
new webpack.optimize.DedupePlugin(),
|
||||||
new webpack.optimize.UglifyJsPlugin(),
|
new webpack.optimize.UglifyJsPlugin(),
|
||||||
new ExtractTextPlugin('styles.css?[hash]', {
|
new ExtractTextPlugin('styles.css?[hash]', {
|
||||||
@ -371,4 +344,41 @@ if (isSilent) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function postcss() {
|
||||||
|
return [
|
||||||
|
cssImport({
|
||||||
|
path: rootPath,
|
||||||
|
|
||||||
|
resolve: ((defaultResolve) =>
|
||||||
|
(url, basedir, importOptions) =>
|
||||||
|
defaultResolve(loaderUtils.urlToRequest(url), basedir, importOptions)
|
||||||
|
)(require('postcss-import/lib/resolve-id')),
|
||||||
|
|
||||||
|
load: ((defaultLoad) =>
|
||||||
|
(filename, importOptions) => {
|
||||||
|
if (/\.font.(js|json)$/.test(filename)) {
|
||||||
|
if (!fileCache[filename] || !isProduction) {
|
||||||
|
// do not execute loader on the same file twice
|
||||||
|
// this is an overcome for a bug with ExtractTextPlugin, for isProduction === true
|
||||||
|
// when @imported files may be processed mutiple times
|
||||||
|
fileCache[filename] = new Promise((resolve, reject) =>
|
||||||
|
this.loadModule(filename, (err, source) =>
|
||||||
|
err ? reject(err) : resolve(this.exec(source, rootPath))
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileCache[filename];
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultLoad(filename, importOptions);
|
||||||
|
}
|
||||||
|
)(require('postcss-import/lib/load-content'))
|
||||||
|
}),
|
||||||
|
|
||||||
|
cssUrl(this)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = webpackConfig;
|
module.exports = webpackConfig;
|
||||||
|
Loading…
Reference in New Issue
Block a user