You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS 1.6.2集成TypeScript遇两类问题,寻求解决方案

AngularJS 1.6.2 集成 TypeScript 问题求助

背景

一周来尝试多份指南将 TypeScript 集成到 AngularJS 1.6.2 项目中,多次中途陷入困惑,目前使用第四份指南推进。

项目核心结构

ProjectRoot
--> app
----> js
------> controllers
------> directives
------> services
------> modules
------> app.js
------> main.js
------> routes.js
----> templates
----> index.html
--> gruntFile.js
--> package.json

实际结构更复杂,以上为核心相关文件及目录。

已添加的 TypeScript 文件

ProjectRoot/app.ts

import { BaselineService } from './app/js/services/baselineService'
import { BaselineController } from './app/js/controllers/baselineController'
import angular from 'angular';

angular
  .module('app',[])
  .controller('ctrl', BaselineController)
  .service('service', BaselineService);

ProjectRoot/app/js/services/baselineService.ts

export class BaselineService {
    static $inject = ['$http'];

    constructor(private $http) {

    }

    get() {
        return this.$http.get('url');
    }
}

ProjectRoot/app/js/controllers/baselineController.ts

import angular from 'angular';
import { BaselineService } from '../services/baselineService';

export class BaselineController {
    prop: string;
    static $inject = ['service'];

    constructor (baselineService: BaselineService) {
        this.prop = baselineService.get();
    }
}

angular.module('app').controller('BaselineController', BaselineController);

ProjectRoot/gruntFile.js(相关配置片段)

module.exports = function (grunt) {
...
    grunt.initConfig({
        ...
        ts: {
            default: {
                src: ['_all.ts'],
                out: 'src/out.js',
                options: {
                    sourceMap: true
                }
            }
        }
    });
}

ProjectRoot/package.json(相关依赖片段)

{
    ...
    "dependencies": {
        ...
        "browserify": "^17.0.0",
        ...
    }
    ...
}

两个核心困惑

  1. 指南中提到一个用于跟踪项目所有文件的依赖文件,编译时会转为ES5、合并为单文件并包含源映射,但未说明该文件的名称、扩展名及存放位置。该文件内容如下:
/// <reference path='typings/Angularjs/angular.d.ts' />

/// <reference path="typings/Angularjs/angular-route.d.ts" />

/// <reference path='typings/moment/moment.d.ts' />

/// <reference path='app.ts' />

/// <reference path='controller.ts' />

/// <reference path='service' />
  1. 指南提到需结合tsify和browserify先编译TypeScript,再遍历依赖链,最后通过命令browserify app.ts -p tsify --debug > bundle.js打包应用,但未详述操作步骤。在项目根目录的Powershell中执行该命令时,提示The term 'browserify' is not recognized as the name of a cmdlet, function, script file, or operable program.,即便已执行npm i browserify。

求助需求

请解决以下两个问题:

  • 上述包含reference路径的文件应如何命名、存放在哪里?
  • 如何正确安装和运行browserify来打包应用?

内容的提问来源于stack exchange,提问作者gib65

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:48:09