【发布时间】:2018-06-08 19:11:44
【问题描述】:
我正在 nodejs 应用程序上集成 newrelic,使用 Angular Universal 制作。我正在使用 webpack 进行捆绑
main.server.aot.ts 中的第一行
const newrelic = require('newrelic');
并在根目录中添加了 newrelic.js。
运行构建弹出以下错误:-
ERROR in ./node_modules/@newrelic/native-metrics/lib/pre-build.js Module not found: Error: Can't resolve '../package' in 'D:\repos\ib-mobile\node_modules\@newrelic\native-metrics\lib' @ ./node_modules/@newrelic/native-metrics/lib/pre-build.js 40:12-33 @ ./node_modules/@newrelic/native-metrics/index.js @ ./node_modules/newrelic/lib/sampler.js @ ./node_modules/newrelic/lib/agent.js @ ./node_modules/newrelic/index.js @ ./src/main.server.aot.ts ERROR in ./node_modules/node-gyp/lib/node-gyp.js Module not found: Error: Can't resolve '../package' in 'D:\repos\ib-mobile\node_modules\node-gyp\lib' @ ./node_modules/node-gyp/lib/node-gyp.js 67:16-37 @ ./node_modules/@newrelic/native-metrics/lib/pre-build.js @ ./node_modules/@newrelic/native-metrics/index.js @ ./node_modules/newrelic/lib/sampler.js @ ./node_modules/newrelic/lib/agent.js @ ./node_modules/newrelic/index.js @ ./src/main.server.aot.ts ERROR in ./node_modules/newrelic/index.js Module not found: Error: Can't resolve './package' in 'D:\repos\ib-mobile\node_modules\newrelic' @ ./node_modules/newrelic/index.js 13:19-39 @ ./src/main.server.aot.ts
如果我在 webpack 配置中添加 newrelic 作为外部组件
module.exports = {
entry: root('./src/main.server.aot.ts'),
output: {
path: root('dist_server'),
filename: 'server.js'
},
target: 'node',
externals: {
newrelic: true
}
};
然后我得到另一个错误
/home/ubuntu/ib-mobile/dist_server/server.js:79752
module.exports = newrelic; ^ ReferenceError: newrelic is not defined at Object.<anonymous> (/home/ubuntu/ib-mobile/dist_server/server.js:79752:18) at __webpack_require__ (/home/ubuntu/ib-mobile/dist_server/server.js:26:30) at Object.module.exports (/home/ubuntu/ib-mobile/dist_server/server.js:79667:16) at __webpack_require__ (/home/ubuntu/ib-mobile/dist_server/server.js:26:30) at /home/ubuntu/ib-mobile/dist_server/server.js:91:18 at Object.<anonymous> (/home/ubuntu/ib-mobile/dist_server/server.js:94:10) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12)
Angular 版本 (ng -v)
Angular CLI: 1.6.3
Node: 6.11.0
OS: win32 x64
Angular: 4.4.6
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, platform-server, router
... tsc-wrapped
@angular/cli: 1.6.3
@angular-devkit/build-optimizer: 0.0.36
@angular-devkit/core: 0.0.22
@angular-devkit/schematics: 0.0.42
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.3
@schematics/angular: 0.1.11
@schematics/schematics: 0.0.11
typescript: 2.3.4
webpack: 3.10.0
【问题讨论】:
-
您好,我也面临同样的问题。你有没有运气并自己解决了这个问题?谢谢。
-
@toph 你必须在服务器包完成后注入自己使用 WebpackBannerPlugin 来做到这一点,
const newrelic = require('newrelic'); -
@UbaidAzad 你能发布整个配置吗?作为答案?我没听懂你想说什么
-
建议您在注释格式中添加行,这没有任何意义
标签: node.js angular webpack newrelic angular-universal