Я связываю свое приложение с помощью веб-пакета и проверяю, указывать цель для "узла" (в противном случае сборка веб-пакета завершится неудачно).
С моей текущей конфигурацией сборка прошла успешно, но когда я пытаюсь запустить ее с использованием узла, я получаю ошибку:
C: \ Users \ myuser \ Desktop \ myproject \ dist \ app.js: 20 / ****** /
modules [moduleId] .call (module.exports, module, module.exports,
webpack_require );
^
TypeError: Невозможно прочитать свойство 'call' из неопределенного
Относится к строке внутри функции webpackBootstrap, вставленной в начало app.js. Такое ощущение, что узел не совместим с Webpack, хотя из того, что я понял, должно быть.
Я сомневаюсь, что это имеет отношение к проблеме, но для того, чтобы у вас была полная картина:
Я передаю ts, и каждый файл из src экспортируется как отдельный кусок в dist вместо связывания всего вместе, чтобы динамически импортировать файлы по требованию во время выполнения.
Например:
- ЦСИ / app.ts
- ЦСИ / compA.ts
- ЦСИ / compB.ts
станет:
- расстояние / app.js
- расстояние / compA.js
- расстояние / compB.js
Вот мой webpack.config.js:
const path = require('path');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const { CheckerPlugin } = require('awesome-typescript-loader');
const glob = require('glob');
let entry = {};
glob.sync('./src/**/*.*').forEach(component => {
let name = component.match(/.*\/(.*)\..*/)[1];
entry[name] = component;
});
module.exports = {
mode: 'development',
entry,
target: 'node',
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx']
},
devtool: 'inline-source-map',
devServer: {
contentBase: './dist'
},
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'awesome-typescript-loader'
}
]
},
plugins: [
new CleanWebpackPlugin(['dist']),
new CheckerPlugin()
],
output: {
filename: (chunkData) => {
let name = chunkData.chunk.name;
let src = chunkData.chunk.entryModule.id;
let path = src.split('/');
let dir = path[path.length -2];
let pathPrefix = dir !== 'src' ? dir + '/' : '';
return pathPrefix + name + '.js';
},
path: path.resolve(__dirname, 'dist'),
publicPath: '/'
},
optimization: {
splitChunks: {
chunks: 'all'
},
},
};