使用Signalr软件包构建项目时找不到模块

时间:2019-01-28 10:56:09

标签: gulp signalr babelify

我正在尝试在我的React应用中使用signalR。当我这样导入时:

import { HubConnection } from '@aspnet/signalr-client';

在不进行丑化的情况下构建正常。但是当我使用uglify()时,由于uglify和es6不兼容而失败。我发现了workaround

import { HubConnection } from '@aspnet/signalr-client/dist/browser/signalr-clientES5-1.0.0-alpha2-final.js';

但是现在当我尝试构建项目时,出现了这样的错误:

Cannot find module './HttpClient' from '...\node_modules\@aspnet\signalr-client\dist\browser'

这些模块位于

'...\node_modules\@aspnet\signalr-client\dist\src\...'

那么,在这种情况下如何修复构建?

构建任务本身:

gulp.task('build', () => {
return browserify({
    entries: './wwwroot/js/client/app.jsx',
    extensions: ['.jsx'],
    debug: true
})
.transform('babelify', {
    presets: ['es2015', 'react'],
    plugins: ['transform-class-properties']
})
.bundle()
.on('error', function (err) {
    gutil.log(gutil.colors.red.bold('[browserify error]'));
    gutil.log(err.message);
    this.emit('end');
})
.pipe(source('app.bundle.js'))
.pipe(streamify(uglify().on('error', function(e){
    console.log(e);
 })))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('wwwroot/dist/client'));
});

谢谢!

1 个答案:

答案 0 :(得分:2)

使用https://www.npmjs.com/package/@aspnet/signalr。 您正在使用不推荐使用且不受支持的软件包。