Skip to content

Commit

Permalink
build:safari fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Debdut committed Jun 4, 2022
1 parent 20a1820 commit 82ddb87
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 55 deletions.
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -14,7 +14,7 @@
"build": "NODE_ENV=production webpack",
"build:chrome": "NODE_ENV=development webpack --config ./webpack/chrome.js",
"build:firefox": "NODE_ENV=development webpack --config ./webpack/firefox.js",
"build:safari": "npm run init:safari && NODE_ENV=development webpack --config ./webpack/safari.js",
"build:safari": "NODE_ENV=development webpack --config ./webpack/safari.js && xcrun safari-web-extension-converter dist/safari-prebuild --project-location dist/safari --force --no-open && rm -rf safari-prebuild",
"watch": "NODE_ENV=development webpack -w",
"watch:chrome": "NODE_ENV=development webpack --config ./webpack/chrome.js -w",
"watch:firefox": "NODE_ENV=development webpack --config ./webpack/firefox.js -w",
Expand Down
96 changes: 48 additions & 48 deletions webpack/base.js
@@ -1,62 +1,62 @@
const CopyPlugin = require('copy-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const CopyPlugin = require("copy-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const {
DefinePlugin,
optimize
} = require('webpack');
const GenerateJsonFromJsPlugin = require('generate-json-from-js-webpack-plugin');
} = require("webpack");
const GenerateJsonFromJsPlugin = require("generate-json-from-js-webpack-plugin");
const {
BundleAnalyzerPlugin
} = require('webpack-bundle-analyzer');
} = require("webpack-bundle-analyzer");
const {
join
} = require('path');
const dotenv = require('dotenv');
} = require("path");
const dotenv = require("dotenv");

const prodPlugins = [],
isProd = process.env.NODE_ENV === 'production';
isProd = process.env.NODE_ENV === "production";

if (isProd) {
prodPlugins.push(new optimize.AggressiveMergingPlugin(), new optimize.OccurrenceOrderPlugin());
}

const Root = join(__dirname, '..');
const Source = join(Root, 'src');
const Dist = join(Root, 'dist');
const Root = join(__dirname, "..");
const Source = join(Root, "src");
const Dist = join(Root, "dist");

const Assets = join(Source, 'assets');
const Background = join(Source, 'background');
const Content = join(Source, 'content');
const Popup = join(Source, 'popup');
const Lib = join(Source, 'lib');
const Option = join(Source, 'option');
const Assets = join(Source, "assets");
const Background = join(Source, "background");
const Content = join(Source, "content");
const Popup = join(Source, "popup");
const Lib = join(Source, "lib");
const Option = join(Source, "option");

const config = {
mode: process.env.NODE_ENV,
target: 'web',
devtool: isProd ? 'none' : 'cheap-source-map',
target: "web",
devtool: isProd ? "none" : "cheap-source-map",
entry: {
background: join(Background, 'index.ts'),
popup: join(Popup, 'index.tsx'),
content: join(Content, 'index.tsx'),
option: join(Option, 'index.tsx'),
background: join(Background, "index.ts"),
popup: join(Popup, "index.tsx"),
content: join(Content, "index.tsx"),
option: join(Option, "index.tsx"),
},
output: {
path: join(__dirname, '../', 'dist'),
filename: '[name].js',
path: join(__dirname, "../", "dist"),
filename: "[name].js",
},
module: {
rules: [{
test: /\.tsx?$/,
loader: 'ts-loader'
loader: "ts-loader"
},
{
test: /\.jsx?$/,
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
loader: "babel-loader",
options: {
presets: ['@babel/preset-env'],
presets: ["@babel/preset-env"],
plugins: [
[
"@babel/plugin-transform-react-jsx",
Expand All @@ -69,20 +69,20 @@ const config = {
{
test: /\.(png|jpe?g|gif)$/i,
use: [{
loader: 'file-loader',
loader: "file-loader",
options: {
name: 'assets/[name].[ext]',
name: "assets/[name].[ext]",
},
}, ],
},
{
test: /\.(gql)$/,
exclude: /node_modules/,
loader: 'graphql-tag/loader',
loader: "graphql-tag/loader",
},
{
test: /\.css$/i,
use: ['style-loader', {
use: ["style-loader", {
loader: "css-loader",
options: {
importLoaders: 1,
Expand All @@ -92,55 +92,55 @@ const config = {
},
{
test: /\.svg$/,
use: ['@svgr/webpack'],
use: ["@svgr/webpack"],
},
{
test: /\.s[ac]ss$/i,
use: ['style-loader', 'css-loader', 'sass-loader'],
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.pcss$/i,
use: [
'style-loader',
"style-loader",
{
loader: 'css-loader',
loader: "css-loader",
options: {
importLoaders: 1,
}
},
'postcss-loader'
"postcss-loader"
],
},
],
},
plugins: [
new DefinePlugin({
'process.env': JSON.stringify(
"process.env": JSON.stringify(
dotenv.config({
path: join(Root, `.env.${process.env.TARGET_ENV || process.env.NODE_ENV}`),
}).parsed,
),
}),
new CopyPlugin({
patterns: [{
from: join(Assets, 'html'),
to: 'assets/html',
from: join(Assets, "html"),
to: "assets/html",
},
{
from: join(Assets, 'images'),
to: 'assets/images',
from: join(Assets, "images"),
to: "assets/images",
},
{
from: join(Assets, 'json'),
to: 'assets/json',
from: join(Assets, "json"),
to: "assets/json",
}
]
}),
...(process.env.STATS ? [new BundleAnalyzerPlugin()] : []),
...prodPlugins,
],
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx', '.png', '.svg', '.gql'],
extensions: [".ts", ".tsx", ".js", ".jsx", ".png", ".svg", ".gql"],
alias: {
lib: Lib,
background: Background,
Expand All @@ -163,13 +163,13 @@ const buildConfig = (browser, path) => ({
name: browser,
output: {
path: join(Dist, path || browser),
filename: '[name].js',
filename: "[name].js",
},
plugins: [
...config.plugins,
new GenerateJsonFromJsPlugin({
path: join(Source, 'manifest', `${browser}.js`),
filename: 'manifest.json',
path: join(Source, "manifest", `${browser}.js`),
filename: "manifest.json",
}),
],
});
Expand Down
4 changes: 2 additions & 2 deletions webpack/chrome.js
@@ -1,5 +1,5 @@
const {
buildConfig
} = require('./base');
} = require("./base");

module.exports = buildConfig('chrome');
module.exports = buildConfig("chrome");
4 changes: 2 additions & 2 deletions webpack/firefox.js
@@ -1,5 +1,5 @@
const {
buildConfig
} = require('./base');
} = require("./base");

module.exports = buildConfig('firefox');
module.exports = buildConfig("firefox");
4 changes: 2 additions & 2 deletions webpack/safari.js
@@ -1,5 +1,5 @@
const {
buildConfig
} = require('./base');
} = require("./base");

module.exports = buildConfig('safari');
module.exports = buildConfig("safari", "safari-prebuild");

0 comments on commit 82ddb87

Please sign in to comment.