Я продолжаю получать эти предупреждения при развертывании:
WARNING in ./node_modules/@angular/core/fesm5/core.js
4996:15-36 Critical dependency: the request of a dependency is an expression
@ ./node_modules/@angular/core/fesm5/core.js
@ ./src/app/app.module.ts
@ ./src/main.ts
@ multi (webpack)-dev-server/client?http://localhost:8080 ./src/main.ts
WARNING in ./node_modules/@angular/core/fesm5/core.js
5008:15-102 Critical dependency: the request of a dependency is an expression
@ ./node_modules/@angular/core/fesm5/core.js
@ ./src/app/app.module.ts
@ ./src/main.ts
@ multi (webpack)-dev-server/client?http://localhost:8080 ./src/main.ts
Что я пробовал:
https://github.com/angular/angular/issues/20357
Моя структура проекта:
Мой webpack.config.js:
var path = require('path');
plugins: [
new webpack.ContextReplacementPlugin(/\@angular(\\|/)core(\\|/)esm5/, path.join(__dirname, './src')),
new HtmlWebpackPlugin({
template: './src/index.html',
filename: 'index.html',
inject: 'body'
}),
new webpack.DefinePlugin({
// global app config object
config: JSON.stringify({
apiUrl: 'http://localhost:4000'
})
})
],Это работает, если вы опубликуете это как ответ, я приму это. Можете ли вы также объяснить, почему это работает, а первое - нет?
Ошибся, я столкнулся с этим в angular 7, webpack больше не настраивается напрямую. Я хотел сказать, что столкнулся с этим, но не мог его настроить. однако, как примечание, поддерживаемый способ в ng 8 - использовать модуль ngx-build-plus npm для переопределения / расширения базовой конфигурации веб-пакета.





Такое же предупреждающее сообщение, когда я обновляю свое угловое приложение с 6 до 7.
Я удаляю сообщение, добавляя путь "@angular/": ["../node_modules/@angular/"] в compilerOptions в tsconfig.json,
Но я не уверен, что это лучшее решение.
Не могли бы вы сказать нам, где в примере вы имеете в виду, например, "compilerOptions": {"baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, "declare": false , "module": "es2015", "moduleResolution": "node", "emitDecoratorMetadata": true, "@ angular /": ["../node_modules/@angular/"] "experimentalDecorators": true, "target" : "es5", "typeRoots": ["node_modules / @ types"], "lib": ["es2017", "dom"]}
вот так -> "compilerOptions": {"outDir": "./dist/out-tsc", ... "paths": {"@ app / *": ["app / *"], "@env / * ": [" environment / * "], ..." @ angular / * ": [" ../node_modules/@angular/* "]}}
Вы были в правильном направлении, за исключением названия плагина, попробуйте добавить следующее в свой webpack.config.js после существующего ContextReplacementPlugin
new webpack.ContextReplacementPlugin(/\@angular(\\|/)core(\\|/)fesm5/, path.join(__dirname, './src')),
@FlavorScape, это прискорбно, однако первоначальный вопрос касался веб-пакета, а также моего ответа
Попробуйте добавить материал, используя
ng add @angular/material
Вы пробовали заменить
[...]esm5/на[...]fesm5/в приведенном вышеwebpack.config.js?