Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度SSR-无法读取属性';documentElement';未定义的_Angular_Webpack_Server Side Rendering_Angular Universal_Angular Webpack - Fatal编程技术网

Angular 角度SSR-无法读取属性';documentElement';未定义的

Angular 角度SSR-无法读取属性';documentElement';未定义的,angular,webpack,server-side-rendering,angular-universal,angular-webpack,Angular,Webpack,Server Side Rendering,Angular Universal,Angular Webpack,我有以下webpack.config.js const path = require('path'); const project = require(path.join(process.cwd(), 'project.json')); const nodeExternals = require('webpack-node-externals'); const webpack = require('webpack'); const locales = Object.keys(project.l

我有以下webpack.config.js

const path = require('path');
const project = require(path.join(process.cwd(), 'project.json'));
const nodeExternals = require('webpack-node-externals');
const webpack = require('webpack');

const locales = Object.keys(project.locales);

const config = {
entry: {
  server: './server.ts'
},
resolve: {
  extensions: ['.ts', '.js'],
  alias: {}
},
target: 'node',
externals: [nodeExternals({
  whitelist: [
     /^@ng-bootstrap/,
     /dropzone/,
     /dropzone\/dist/,
     /^ngx-dropzone-wrapper/,
     /^ngx-dropzone-wrapper\/dist/,
     /^@agm\/core/
  ]
})],
output: {
  path: path.join(__dirname, 'dist'),
  filename: '[name].js'
},
module: {
  rules: [{
     test: /\.ts$/,
     loader: 'ts-loader'
  }]
},
plugins: [
  // ...
  new webpack.DefinePlugin({
     'process.env.BROWSER': JSON.stringify(true),
     'window': JSON.stringify(true),
     'document': JSON.stringify(true),
     'localStorage': {
        getItem: function () {
           return true
        },
        setItem: function () {
           return true
        },
     }
  }),
  // ...
]
};

for (let i = 0; i < locales.length; i++) {
  config.resolve.alias[`main.server.${locales[i].toLowerCase()}`] = path.join(__dirname, 'dist', 'server', locales[i].toLowerCase(), 'main.js')
}

module.exports = config;
错误:

/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1
(function (exports, require, module, __filename, __dirname) { !function(n){var l={};function e(t){if(l[t])return l[t].exports;var o=l[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=n,e.c=l,e.d=function(n,l,t){e.o(n,l)||Object.defineProperty(n,l,{configurable:!1,enumerable:!0,get:t})},e.r=function(n){Object.defineProperty(n,"__esModule",{value:!0})},e.n=function(n){var l=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(l,"a",l),l},e.o=function(n,l){return Object.prototype.hasOwnProperty.call(n,l)},e.p="",e(e.s=108)}([function(n,l){n.exports=require("@angular/core")},function(n,l,e){"use strict";function t(n){return parseInt(""+n,10)}function o(n){return void 0!==n&&null!==n?""+n:""}function u(n,l,e){return void 0===e&&(e=0),Math.max(Math.min(n,l),e)}function r(n){return"string"==typeof n}function a(n){return!isNaN(t(n))}function i(n){return"number"==typeof n&&isFinite(n)&&Math.floo

TypeError: Cannot read property 'documentElement' of undefined
at /home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:227894
at Object.<anonymous> (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:228489)
at Object.<anonymous> (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:228520)
at e (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:172)
at Object.<anonymous> (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:997:393)
at e (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:172)
at Object.ngx-dropzone-wrapper (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1981:55)
at e (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:997:33646)
at Object../node_modules/ngx-dropzone-wrapper/dist/ngx-dropzone-wrapper.ngfactory.js (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1233:156)
at e (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:997:33646)
/home/michalis/Documents/box/18-24/admin/dist/server.js:1
函数(n){VAL{};函数e(t){若(l[t)若(l[t[t])若(l[t)若(l[t)若(l[t])返回l[t]返回l[t].出口;出口;var o=l[t]要求,要求,要求,要求,要求,要求,要求,模块,要求,模块,要求,要求,模块,要求,模块,要求,模块,要求,要求,模块,要求,要求,要求,要求,模块(出口,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,出口,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,需要,要求,若若(若(若(t)若(t)若(若(t)若(若(若(t)若e.r=函数(n){Object.defineProperty(n,“{uu-esModule”,{value:!0}}),e.n=function(n){var l=n&&n.{uu-esModule?function(){return n.default}:function(){return n};return e.d(l,“a”,l),l},e.o=function(n,l){return Object prototype.hasOwnProperty.call(n,l)},e.p=“”,e(e.s=108)}([function(n,l){n,l)}导出=require n/core,core,core,“@n;使用函数n,n}){return parseInt(“+n,10)}函数o(n){return void 0!==n&&null!==n?”“+n:”}函数u(n,l,e){return void 0==e&(e=0),Math.max(Math.min(n,l),e)}函数r(n){return return string=typeof n}函数a(n){return isNaN(t(n))}函数i(n){return number=typeof n&&isFinite(n)&&Math
TypeError:无法读取未定义的属性“documentElement”
at/home/michalis/Documents/box/18-24/admin/dist/server.js:1:227894
在对象上。(/home/michalis/Documents/box/18-24/admin/dist/server.js:1:228489)
在对象上。(/home/michalis/Documents/box/18-24/admin/dist/server.js:1:228520)
在e(/home/michalis/Documents/box/18-24/admin/dist/server.js:1:172)
在对象上。(/home/michalis/Documents/box/18-24/admin/dist/server.js:997:393)
在e(/home/michalis/Documents/box/18-24/admin/dist/server.js:1:172)
在Object.ngx-dropzone-wrapper(/home/michalis/Documents/box/18-24/admin/dist/server.js:1981:55)
在e(/home/michalis/Documents/box/18-24/admin/dist/server.js:997:33646)
at Object../node_modules/ngx dropzone wrapper/dist/ngx-dropzone-wrapper.ngfactory.js(/home/michalis/Documents/box/18-24/admin/dist/server.js:1233:156)
在e(/home/michalis/Documents/box/18-24/admin/dist/server.js:997:33646)

正如您在我的webpack.config.js文件中看到的,我将ngx dropzone包装器添加到了白名单中。您知道发生了什么吗?是否有针对所有外部库的全局解决方案?

我认为这可能是因为服务器端没有DOM,您的代码或某些依赖性代码可能会直接执行DOM操作知道吗,这就是node_模块白名单的原因。所有其他模块似乎都被忽略了……但这个模块……不是
/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1
(function (exports, require, module, __filename, __dirname) { !function(n){var l={};function e(t){if(l[t])return l[t].exports;var o=l[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,e),o.l=!0,o.exports}e.m=n,e.c=l,e.d=function(n,l,t){e.o(n,l)||Object.defineProperty(n,l,{configurable:!1,enumerable:!0,get:t})},e.r=function(n){Object.defineProperty(n,"__esModule",{value:!0})},e.n=function(n){var l=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(l,"a",l),l},e.o=function(n,l){return Object.prototype.hasOwnProperty.call(n,l)},e.p="",e(e.s=108)}([function(n,l){n.exports=require("@angular/core")},function(n,l,e){"use strict";function t(n){return parseInt(""+n,10)}function o(n){return void 0!==n&&null!==n?""+n:""}function u(n,l,e){return void 0===e&&(e=0),Math.max(Math.min(n,l),e)}function r(n){return"string"==typeof n}function a(n){return!isNaN(t(n))}function i(n){return"number"==typeof n&&isFinite(n)&&Math.floo

TypeError: Cannot read property 'documentElement' of undefined
at /home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:227894
at Object.<anonymous> (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:228489)
at Object.<anonymous> (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:228520)
at e (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:172)
at Object.<anonymous> (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:997:393)
at e (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1:172)
at Object.ngx-dropzone-wrapper (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1981:55)
at e (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:997:33646)
at Object../node_modules/ngx-dropzone-wrapper/dist/ngx-dropzone-wrapper.ngfactory.js (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:1233:156)
at e (/home/michalis/Documents/Boxes/18-24/admin/dist/server.js:997:33646)