Задача сборки Grunt для Angular4 Не удается найти модуль '@angular/core/testing'
Я пытаюсь настроить задачу сборки Grunt для моего проекта Angular 4 и вижу ошибки загрузки некоторых модулей, когда пытаюсь запустить задачи. Детали шагов, которые я сделал, -
1. Перешел на https://angular.io/guide/quickstart и использовал шаги, упомянутые в быстром запуске, для создания нового приложения Angular4. Проверено и гарантировано, что оно работает.
2. Обновлен файл package.json, включающий следующее:
"grunt": "~0.4.5",
"grunt-typescript": "^0.8.0",
"grunt-contrib-copy": "~1.0.0",
Добавлен Gruntfile.js со следующим содержимым:
module.exports = function (grunt) {
grunt.initConfig ({
машинопись: {
база: {
источник: [
'src / app //.ts',
],
dest: 'out / static / app.js',
опции: {
цель: 'es5',
исходная карта: ложь,
moduleResolution: 'узел'
}
}
}
});
grunt.loadNpmTasks ('Грунт-машинописный');
//grunt.loadNpmTasks('grunt-contrib-copy ');
grunt.registerTask ("по умолчанию", ["машинопись"]);
grunt.registerTask ("build", ["typcript"]);
};Бежать
grunt build
,
Когда я бегу grunt build
Я получаю следующее в терминале:
Running "typescript:base" (typescript) task
>> src/app/app.component.spec.ts(1,32): error TS2307: Cannot find module '@angular/core/testing'.
>> src/app/app.component.spec.ts(5,1): error TS2304: Cannot find name 'describe'.
>> src/app/app.component.spec.ts(6,3): error TS2304: Cannot find name 'beforeEach'.
>> src/app/app.component.spec.ts(14,3): error TS2304: Cannot find name 'it'.
>> src/app/app.component.spec.ts(17,5): error TS2304: Cannot find name 'expect'.
>> src/app/app.component.spec.ts(20,3): error TS2304: Cannot find name 'it'.
>> src/app/app.component.spec.ts(23,5): error TS2304: Cannot find name 'expect'.
>> src/app/app.component.spec.ts(26,3): error TS2304: Cannot find name 'it'.
>> src/app/app.component.spec.ts(30,5): error TS2304: Cannot find name 'expect'.
>> src/app/app.component.ts(1,1): error TS1148: Cannot compile modules unless the '--module' flag is provided.
>> src/app/app.component.ts(1,27): error TS2307: Cannot find module '@angular/core'.
>> src/app/app.component.ts(8,14): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning.
>> src/app/app.module.ts(1,31): error TS2307: Cannot find module '@angular/platform-browser'.
>> src/app/app.module.ts(2,26): error TS2307: Cannot find module '@angular/core'.
>> src/app/app.module.ts(16,14): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning.
Warning: Task "typescript:base" failed. Use --force to continue.
Кажется, другой пользователь столкнулся с подобной проблемой, но должен был переключиться на grunt-ts
Вместо того, чтобы использовать grunt-typescript
, У кого-нибудь есть предложения о том, как заставить это работать?
Хотя у нас есть angular-cli (ng build) для сборки кода на Angular 4, я пытаюсь сделать это потому, что собираюсь использовать это в проекте, который имеет бэкэнд-код Python и выполняет сложные задачи сборки. Я хотел бы объединить все мои задачи по сборке с существующим Gruntfile.js. Я новичок в Angular4 и Typescript. Учусь, как я больше работаю над ними, и изо всех сил пытаюсь решить эту проблему.
1 ответ
Проблема grunt-typcript, которую я разместил здесь, не была решена для меня. Итак, я использовал grunt-ts, как предложено в /questions/39611951/grunt-typescript-ne-mozhet-najti-uglovoe-yadro/39611967#39611967. Тем не менее, он не генерировал файлы, подобные тем, что были созданы с помощью ng build. Итак, я в конечном итоге использовал Webpack, следуя руководству https://angular.io/guide/webpack. Это приводит к результатам, аналогичным ng build.