Не удается запустить базовый сценарий Typescript через основное веб-приложение .net - PullRequest
0 голосов
/ 27 февраля 2019

Структура проекта

Proj
--wwwroot/scripts
--scripts
--tsconfig.json
----Account
------app.ts
--gulpfile.js

С учетом следующего TypeScript в сценариях / Account / app.ts:

function sayHello() {
    alert('hello world');
}

в файле tsconfig.json

{
 "compilerOptions": {
    "noImplicitAny": true,
    "noEmitOnError": true,
    "sourceMap": true,
    "target": "es6", 
    "lib": [ "es6", "dom" ] 
  },
  "compileOnSave": false
}

и gulpfile.js

var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var tsify = require('tsify');

gulp.task('default', function () {
    return browserify({
        basedir: '.',                               
        entries: ['scripts/Account/app.ts'],        
        cache: {},                                  
        packageCache: {}                           
        })
        .plugin(tsify)                              
        .bundle()                                   
        .pipe(source('scripts/Account/app.js'))             
        .pipe(gulp.dest("wwwroot/scripts"));        
});

Я получаю выходной файл в wwwroot / scripts / app.js.Но эта функция не может быть вызвана с веб-страниц, которые ее используют, потому что она недоступна глобально, так как кажется, что она заключена в функцию:

Screenshot

Так что же мне не хватает на моих этапах компиляции, чтобы можно было вызывать базовую функцию машинописи?Я попытался экспортировать функцию, в этом случае она просто добавляет ее к объекту экспорта:

Screenshot 2

1 Ответ

0 голосов
/ 28 февраля 2019

Конфигурация : укажите имя для использования в качестве автономная библиотека

gulp.task('default', function () {
    return browserify({
            basedir: '.',                               
            entries: ['scripts/Account/app.ts'],        
            cache: {},                                  
            packageCache: {},
            standalone : "XLib",        // specify a name to be used as standalone lib
        })
        .plugin(tsify)                              
        .bundle()                                   
        .pipe(source('scripts/Account/app.js'))             
        .pipe(gulp.dest("wwwroot/scripts"));        
});

Предоставьте функцию :

export function sayHello() {
    alert('hello world');
}

Использование библиотеки в браузере :

<script>
    XLib.sayHello();
</script>

Демонстрация :

enter image description here

...