From 7807e6099253acd51ccd79925e8952339afdea71 Mon Sep 17 00:00:00 2001 From: Swashata Ghosh Date: Mon, 3 Dec 2018 20:58:16 +0530 Subject: [PATCH] fix: issue with css image through webpack Due to how we are handling our weird multi-compiler publicPath things were getting messed up. So use a separate config for CSS in production build to specify publicPath. Fixes #117 --- examples/plugin/package.json | 4 +- examples/plugin/src/app/bg.jpg | Bin 0 -> 44891 bytes examples/plugin/src/app/index.css | 5 ++ examples/plugin/yarn.lock | 12 ++-- .../scripts/src/config/WebpackConfigHelper.ts | 60 +++++++++++++----- 5 files changed, 58 insertions(+), 23 deletions(-) create mode 100755 examples/plugin/src/app/bg.jpg diff --git a/examples/plugin/package.json b/examples/plugin/package.json index 0bc05bc5a..8475eef46 100644 --- a/examples/plugin/package.json +++ b/examples/plugin/package.json @@ -18,7 +18,9 @@ "bootstrap": "wpackio-scripts bootstrap", "start": "wpackio-scripts start", "build": "wpackio-scripts build", - "archive": "wpackio-scripts pack" + "archive": "wpackio-scripts pack", + "start:dev": "../../packages/scripts/lib/bin/index.js start", + "build:dev": "../../packages/scripts/lib/bin/index.js build" }, "dependencies": { "@types/webpack-env": "^1.13.6", diff --git a/examples/plugin/src/app/bg.jpg b/examples/plugin/src/app/bg.jpg new file mode 100755 index 0000000000000000000000000000000000000000..8348e38780de3332ba2e1d39fdb81fd8bba92389 GIT binary patch literal 44891 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 literal 0 HcmV?d00001 diff --git a/examples/plugin/src/app/index.css b/examples/plugin/src/app/index.css index 8e774627e..a0ffa8d07 100644 --- a/examples/plugin/src/app/index.css +++ b/examples/plugin/src/app/index.css @@ -6,4 +6,9 @@ body { .site-title a { color: azure !important; background-color: aqua !important; + background-image: url('./bg.jpg'); +} +.site-content { + background: url('./image.png') no-repeat top left; + background-size: 100px 70px; } diff --git a/examples/plugin/yarn.lock b/examples/plugin/yarn.lock index 3bc42ce39..1637b575a 100644 --- a/examples/plugin/yarn.lock +++ b/examples/plugin/yarn.lock @@ -1106,10 +1106,10 @@ "@webassemblyjs/wast-parser" "1.7.11" "@xtuc/long" "4.2.1" -"@wpackio/babel-preset-base@^2.6.0": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@wpackio/babel-preset-base/-/babel-preset-base-2.6.0.tgz#7933a263ea4680158b82af763031648f3f30c0ba" - integrity sha512-LFfn4sZs1rnbD/3vIgjiJnX1vcvl/ioonF1XhdTjRORLhzxXF04WM5/zyZ7N/2d34OuPQWyNKVlR2jrAhZMSfA== +"@wpackio/babel-preset-base@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@wpackio/babel-preset-base/-/babel-preset-base-2.8.0.tgz#f661d8ea2cec14ab348d8c493e42a443deba7583" + integrity sha512-qAUG+/6cBEq9KYqNJLdHqYBuy0fAOSjrq28tnVAsKVgcBia7Hdwlm0VTz8xlNQPhFaHcswK0BP9Lw53Vk1m7IA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-class-properties" "^7.1.0" @@ -1125,7 +1125,7 @@ "@types/webpack-env" "^1.13.6" "@wpackio/scripts@file:../../packages/scripts": - version "2.6.0" + version "2.8.0" dependencies: "@babel/core" "^7.1.0" "@babel/preset-flow" "^7.0.0" @@ -1152,7 +1152,7 @@ "@types/webpack-dev-middleware" "^2.0.2" "@types/webpack-env" "^1.13.6" "@types/webpack-hot-middleware" "^2.16.4" - "@wpackio/babel-preset-base" "^2.6.0" + "@wpackio/babel-preset-base" "^2.8.0" archiver "^3.0.0" autoprefixer "^9.1.5" babel-loader "^8.0.2" diff --git a/packages/scripts/src/config/WebpackConfigHelper.ts b/packages/scripts/src/config/WebpackConfigHelper.ts index 023ee5f74..2c8dc272b 100644 --- a/packages/scripts/src/config/WebpackConfigHelper.ts +++ b/packages/scripts/src/config/WebpackConfigHelper.ts @@ -63,7 +63,7 @@ interface CommonWebpackConfig { */ export class WebpackConfigHelper { // This is where all the filename will be prefixed, so we create a directory - public readonly outputInnerDir: string; + public readonly appDir: string; // Actual outputPath as provided by user public readonly outputPath: string; private file: FileConfig; @@ -107,7 +107,7 @@ export class WebpackConfigHelper { // all middlewares would actually use the `name` from webpack config // to separate updates. const { name } = this.file; - this.outputInnerDir = slugify(name, { lower: true }); + this.appDir = slugify(name, { lower: true }); this.outputPath = path.join(this.cwd, outputPath); } @@ -201,7 +201,7 @@ export class WebpackConfigHelper { // We do not use path.resolve, because we expect outputPath to be // relative. @todo: create a test here path: this.outputPath, - filename: `${this.outputInnerDir}/[name].js`, + filename: `${this.appDir}/[name].js`, // leave blank because we would handle with free variable // __webpack_public_path__ in runtime. publicPath: '', @@ -248,20 +248,18 @@ export class WebpackConfigHelper { }, }), // Clean dist directory - new cleanWebpackPlugin( - [`${this.outputPath}/${this.outputInnerDir}`], - { root: this.cwd, verbose: false } - ), + new cleanWebpackPlugin([`${this.outputPath}/${this.appDir}`], { + root: this.cwd, + verbose: false, + }), // Initiate mini css extract new miniCssExtractPlugin({ - filename: `${this.outputInnerDir}/[name].css`, + filename: `${this.appDir}/[name].css`, }), // Create Manifest for PHP Consumption new WebpackAssetsManifest({ writeToDisk: true, - output: `${this.outputPath}/${ - this.outputInnerDir - }/manifest.json`, + output: `${this.outputPath}/${this.appDir}/manifest.json`, publicPath: ``, // We dont put ${this.config.outputPath}/ here because, PHP will pick it up anyway. entrypoints: true, entrypointsKey: 'wpackioEp', @@ -468,21 +466,51 @@ ${bannerConfig.copyrightText}${bannerConfig.credit ? creditNote : ''}`, }); } // create file rules - const fileRules: webpack.RuleSetRule = { - test: /\.(woff|woff2|eot|ttf|otf|png|jpg|gif)(\?v=\d+\.\d+\.\d+)?$/, + // But use relativePath for style type resources like sass, scss or css + // This is needed because we can't know the absolute publicPath + // of CSS imported assets. + const fileLoaderTest = /\.(woff|woff2|eot|ttf|otf|png|jpg|gif)(\?v=\d+\.\d+\.\d+)?$/; + const fileLoaderOptions = { + name: `[name]-[hash:8].[ext]`, + outputPath: `${this.appDir}/assets/`, + }; + const fileRulesNonStyle: webpack.RuleSetRule = { + test: fileLoaderTest, use: [ { loader: 'file-loader', options: { - name: 'asset-[hash].[ext]', - outputPath: `${this.outputInnerDir}/assets/`, + ...fileLoaderOptions, }, }, ], + issuer: location => !/\.(sa|sc|c)ss$/.test(location), + }; + const fileRulesStyle: webpack.RuleSetRule = { + test: fileLoaderTest, + use: [ + { + loader: 'file-loader', + options: { + ...fileLoaderOptions, + // Here mention the public path relative to the css + // file directory, but only during production mode + // for development mode, it is still undefined + publicPath: this.isDev ? undefined : `assets/`, + }, + }, + ], + issuer: location => /\.(sa|sc|c)ss$/.test(location), }; return { - rules: [jsRules, tsRules, styleRules, fileRules], + rules: [ + jsRules, + tsRules, + styleRules, + fileRulesNonStyle, + fileRulesStyle, + ], }; }