/* * Author : OBKoro1 * Date : 2019-12-26 17:42:32 * LastEditors : OBKoro1 * LastEditTime : 2020-12-25 14:35:45 * FilePath : \autoCommit\webpack.config.js * Description : webpack 配置 * https://github.com/OBKoro1 */ // @ts-check const path = require('path'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const outputPathName = 'out'; const pathResolve = (p) => path.resolve(__dirname, p); /** @type {import('webpack').Configuration} */ const config = { target: 'node', // vscode插件运行在Node.js环境中 📖 -> https://webpack.js.org/configuration/node/ entry: './src/extension.ts', // 插件的入口文件 📖 -> https://webpack.js.org/configuration/entry-context/ output: { // 打包好的文件储存在'dist'文件夹中 (请参考package.json), 📖 -> https://webpack.js.org/configuration/output/ path: pathResolve(outputPathName), filename: 'extension.js', libraryTarget: 'commonjs2', devtoolModuleFilenameTemplate: '../[resource-path]', }, devtool: 'source-map', externals: { vscode: 'commonjs vscode', // vscode-module是热更新的临时目录,所以要排除掉。 在这里添加其他不应该被webpack打包的文件, 📖 -> https://webpack.js.org/configuration/externals/ }, resolve: { alias: { '~': pathResolve('src'), }, // 支持读取TypeScript和JavaScript文件, 📖 -> https://github.com/TypeStrong/ts-loader extensions: ['.ts', '.js'], }, module: { rules: [ { test: /\.ts$/, exclude: /node_modules/, use: [ { loader: 'ts-loader', }, ], }, ], }, plugins: [ // @ts-ignore new CopyWebpackPlugin([ { from: pathResolve('src/views'), to: pathResolve(`${outputPathName}/views`), ignore: ['.*'], }, { from: pathResolve('src/assets'), to: pathResolve(`${outputPathName}/assets`), ignore: ['.*'], }, ]), ], }; module.exports = config;