【问题标题】:Can't run a basic Typescript script through a .net core web app无法通过 .net 核心 Web 应用程序运行基本的 Typescript 脚本
【发布时间】:2019-02-27 18:03:34
【问题描述】:

项目结构

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

在 scripts/Account/app.ts 中给出以下 TypeScript:

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 中得到一个输出文件。但是无法从使用它的网页调用该函数,因为它似乎被包装在一个函数中,因此它在全局范围内不可用:

那么我在编译步骤中缺少什么才能调用基本的打字稿函数?我试过导出函数,在这种情况下它只是将它添加到导出对象:

【问题讨论】:

    标签: typescript gulp visual-studio-2017 asp.net-core-mvc browserify


    【解决方案1】:

    配置:指定要用作standalone lib的名称

    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>
    

    演示

    【讨论】:

      猜你喜欢
      • 2018-05-14
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      • 2019-12-01
      • 2023-03-29
      相关资源
      最近更新 更多