У меня есть электронное приложение, которому нужно прочитать файл, сохраненный в %appdata%
(или эквивалент для macOS и linux). Я импортирую файл следующим образом:
const appPath = app.getPath("appData");
const data = await import(appPath + "/app/file.json");
Если я запускаю код из исходного файла, он работает, но когда я пытаюсь связать его с веб-пакетом, я получаю ошибку Module not found
. Я знаю, что это вызвано тем, что webpack пытается выполнить анализ моего импорта.
Так есть ли способ динамически импортировать файл в webpack?
Заранее спасибо!
Редактировать: мой конфиг веб-пакета (без babel, поскольку я использую машинопись)
var path = require("path");
const CopyPlugin = require('copy-webpack-plugin');
var nodeExternals = require('webpack-node-externals');
module.exports = {
mode: 'production',
entry: "./src/index.ts",
externals: [nodeExternals()],
output: {
filename: "main.js",
path: path.resolve(__dirname, 'build')
},
node:{
__dirname:false
},
target: "electron-main",
resolve: {
alias: {
['firebase/app']: path.resolve(__dirname, 'node_modules/firebase/app/dist/index.cjs.js'),
['firebase']: path.resolve(__dirname, 'node_modules/firebase/dist/index.node.cjs.js')
}, extensions: ['.ts', '.js']
},
module: {
noParse: "/public/**/*",
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
},
// {
// test: /\.json$/,
// loader: 'json-loader'
// }
],
},
plugins: [
new CopyPlugin([
{ from: './src/public', to: './public' }
]),
]
}