大约一年前,我使用Angular Quickstart创建了一个项目,它为.ts文件提供了在Save上自动转换成.js文件的能力。几个月前,这个功能停止了工作,我不知道为什么。我认为它发生在Angular停止使用打字时,而是开始使用@types。
值得庆幸的是,自动重新加载功能仍适用于HTML和SCSS / CSS更改,所以我知道它并没有完全破坏。
我想要自动转换的所有文件都有扩展名.ts或.spec.ts,并且位于app / components或app / shared的子文件夹中。例如,foo组件将是app / components / foo / foo.component.ts,该组件的.spec.ts文件将位于同一文件夹中。
注意:我没有使用Angular CLI,此时将项目转换为使用Angular CLI不在范围内。
以下是相关的文件 - 如果您需要查看其他内容,请与我们联系:
的package.json
{
"name": "app",
"version": "1.0.1",
"scripts": {
"start": "tsc && concurrently \"tsc -w\" \"lite-server\" \"npm run generate-css\" \"npm run watch-css\" ",
"pree2e": "npm run webdriver:update",
"e2e": "tsc && concurrently \"http-server -s\" \"protractor protractor.config.js\" --kill-others --success first",
"lint": "tslint ./app/**/*.ts -t verbose",
"generate-css": "node-sass -r app --output ./generated-css",
"watch-css": "node-sass -w -r app --output ./generated-css",
"lite": "lite-server",
"test": "tsc && concurrently \"tsc -w\" \"karma start karma.conf.js\"",
"test-once": "tsc && karma start karma.conf.js --single-run",
"tsc": "tsc",
"tsc:w": "tsc -w"
},
"author": "Me",
"dependencies": {
"@angular/animations": "4.0.2",
"@angular/common": "4.0.2",
"@angular/compiler": "4.0.2",
"@angular/compiler-cli": "4.0.2",
"@angular/core": "4.0.2",
"@angular/forms": "4.0.2",
"@angular/material": "^2.0.0-beta.3",
"@angular/http": "4.0.2",
"@angular/platform-browser": "4.0.2",
"@angular/platform-browser-dynamic": "4.0.2",
"@angular/platform-server": "4.0.2",
"@angular/router": "4.0.2",
"angular-in-memory-web-api": "0.2.4",
"angular2-ui-switch": "1.2.0",
"bootstrap": "3.3.7",
"core-js": "2.4.1",
"mydatepicker":"1.2.9",
"ng2-translate": "5.0.0",
"reflect-metadata": "0.1.9",
"rxjs": "5.0.1",
"socket.io": "1.7.2",
"lodash": "4.17.4",
"socket.io-client": "1.7.2",
"systemjs": "0.19.40",
"wijmo": "wijmo-system-min",
"zone.js": "0.8.5",
"typescript": "2.2.2"
},
"devDependencies": {
"@types/core-js": "0.9.35",
"@types/jasmine": "2.5.40",
"@types/node": "6.0.58",
"@types/selenium-webdriver": "2.53.39",
"@types/lodash": "4.14.62",
"canonical-path":"0.0.2",
"codelyzer": "0.0.25",
"concurrently": "3.1.0",
"http-server": "0.9.0",
"jasmine-core": "2.5.2",
"karma": "1.3.0",
"karma-chrome-launcher": "2.0.0",
"karma-cli": "1.0.1",
"karma-htmlfile-reporter": "0.3.4",
"karma-jasmine": "1.1.0",
"karma-jasmine-html-reporter": "0.2.2",
"lite-server": "2.2.2",
"live-server": "1.1.0",
"lodash": "4.17.4",
"node-sass": "3.13.1",
"nodemon": "1.11.0",
"protractor": "3.3.0",
"rimraf": "2.5.4",
"tslint": "3.15.1"
}
}
tsconfig.json
{
"compileOnSave": true,
"compilerOptions": {
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"mapRoot": "./",
"module": "commonjs",
"moduleResolution": "node",
"lib": [ "es2015", "dom" ],
"noEmitOnError": true,
"noImplicitAny": false,
"outDir": "../dist/out-tsc",
"sourceMap": true,
"target": "es5",
"suppressImplicitAnyIndexErrors": true,
"typeRoots": [
"../node_modules/@types"
]
},
"exclude": [
"node_modules",
"dist",
"wijmo-system-min",
"app/shared/date-picker"
]
}
更新:最后我咬了一下子弹并将项目切换到Angular CLI ...它花了大约一个星期进行转换,但至少现在一切都有效了。因此,即使有人回答这个问题,我也无法验证修复是否有效。