1 Star 0 Fork 0

sniper15 / pc-nrfconnect-launcher

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
webpack.config.js 3.07 KB
一键复制 编辑 原始数据 按行查看 历史
Chun Fan 提交于 2020-10-06 15:18 . Update shared to v4.10.1
const webpack = require('webpack');
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const nodeEnv = process.env.NODE_ENV || 'development';
const isProd = nodeEnv === 'production';
function createExternals() {
// Some libraries, e.g. those with native addons, cannot be bundled
// by webpack. Adding them as externals so that they are not bundled.
const libs = [
'pc-ble-driver-js',
'pc-nrfjprog-js',
'serialport',
'usb',
'nrf-device-setup',
'osx-temperature-sensor',
];
return libs.reduce(
(prev, lib) => Object.assign(prev, { [lib]: `commonjs ${lib}` }),
{}
);
}
module.exports = {
mode: nodeEnv,
devtool: isProd ? 'hidden-source-map' : 'inline-eval-cheap-source-map',
entry: {
app: './src/app',
shared: './node_modules/pc-nrfconnect-shared/src/index.js',
launcher: './src/launcher',
},
output: {
path: path.resolve('dist'),
publicPath: '../dist/',
filename: '[name]-bundle.js',
},
module: {
rules: [
{
test: /\.(js|jsx|ts|tsx)$/,
use: [
{
loader: require.resolve('babel-loader'),
options: {
cacheDirectory: true,
configFile:
'./node_modules/pc-nrfconnect-shared/config/babel.config.js',
},
},
{
loader: require.resolve('eslint-loader'),
},
],
exclude: /node_modules\/(?!pc-nrfconnect-shared\/)/,
},
{
test: /\.scss|\.css$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
{
loader: 'sass-loader',
options: {
// eslint-disable-next-line global-require
implementation: require('sass'),
},
},
],
},
{
test: /\.(png|gif|ttf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
loader: require.resolve('file-loader'),
},
],
},
resolve: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
symlinks: false,
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(nodeEnv),
}),
new MiniCssExtractPlugin({
// The next line is only needed as long as we still need to support legacy apps.
// Later, when we want to drop support for legacy apps, just replace that line with
// filename: '[name].css',
moduleFilename: ({ name }) =>
name === 'app' ? 'legacy.css' : '[name].css',
chunkFilename: '[id].css',
}),
],
externals: createExternals(),
target: 'electron-renderer',
};
1
https://gitee.com/sniper15/pc-nrfconnect-launcher.git
git@gitee.com:sniper15/pc-nrfconnect-launcher.git
sniper15
pc-nrfconnect-launcher
pc-nrfconnect-launcher
master

搜索帮助