snowpack.config.js 2.4 KB
Newer Older
P
Peter Pan 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/**
 * Copyright 2020 Baidu Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
/* eslint-disable @typescript-eslint/no-var-requires */

require('./builder/environment');
const mock = require('./builder/mock');
const icons = require('./builder/icons');
const netron = require('./builder/netron');
const wasm = require('./builder/wasm');

const port = Number.parseInt(process.env.PORT || 3000, 10);
const devServer = {
    port: port + 1,
    host: '127.0.0.1'
};

module.exports = {
    extends: '@snowpack/app-scripts-react',
    plugins: [
        '@snowpack/plugin-dotenv',
P
Peter Pan 已提交
35 36 37 38 39 40 41 42
        [
            '@snowpack/plugin-optimize',
            {
                minifyHTML: false, // we will do it later in post-build
                preloadModules: true,
                target: ['chrome63', 'firefox67', 'safari11.1', 'edge79'] // browsers support es module
            }
        ],
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
        [
            '@snowpack/plugin-run-script',
            {
                cmd: 'node builder/icons.js && node builder/netron.js && node builder/wasm.js',
                watch: `node builder/dev-server.js --port ${devServer.port} --host ${devServer.host}`,
                output: 'dashboard'
            }
        ]
    ],
    install: ['@visualdl/wasm'],
    alias: {
        '~': './src'
    },
    proxy: {
        ...[mock.pathname, icons.pathname, netron.pathname, wasm.pathname].reduce((m, pathname) => {
58 59 60
            m[
                process.env.SNOWPACK_PUBLIC_BASE_URI + pathname
            ] = `http://${devServer.host}:${devServer.port}${pathname}`;
61 62 63 64 65 66 67 68 69
            return m;
        }, {})
    },
    devOptions: {
        out: 'dist',
        hostname: process.env.HOST || 'localhost',
        port
    },
    buildOptions: {
P
Peter Pan 已提交
70
        baseUrl: '/', // set it in post-build
71 72 73 74 75 76 77
        clean: true
    },
    installOptions: {
        polyfillNode: true,
        namedExports: ['file-saver']
    }
};