* initialize figma plugin * Add icons to view * Make the plugin work * Fix search hook * Finialize figma plugin * Finish up icons * remove unused code * Add cover and icon
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
const HtmlWebpackInlineSourcePlugin = require('html-webpack-inline-source-plugin');
|
|
const webpack = require('webpack');
|
|
|
|
module.exports = (env, argv) => ({
|
|
// This is necessary because Figma's 'eval' works differently than normal eval
|
|
devtool: argv.mode === 'production' ? false : 'inline-source-map',
|
|
entry: {
|
|
ui: './src/ui.tsx',
|
|
main: './src/main.ts',
|
|
},
|
|
output: {
|
|
filename: '[name].js',
|
|
path: path.resolve(__dirname, 'build'),
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.tsx?$/,
|
|
use: 'ts-loader',
|
|
exclude: /node_modules/,
|
|
},
|
|
{
|
|
test: /\.css$/,
|
|
loader: [{ loader: 'style-loader' }, { loader: 'css-loader' }],
|
|
},
|
|
],
|
|
},
|
|
resolve: {
|
|
extensions: ['.tsx', '.ts', '.js'],
|
|
},
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
ICONS: JSON.stringify(
|
|
fs.readdirSync(path.join(process.cwd(), '../../icons')).map(name => name.split('.')[0]),
|
|
),
|
|
}),
|
|
new HtmlWebpackPlugin({
|
|
template: './src/ui.html',
|
|
filename: 'ui.html',
|
|
inlineSource: '.(js)$',
|
|
chunks: ['ui'],
|
|
}),
|
|
new HtmlWebpackInlineSourcePlugin(),
|
|
],
|
|
});
|