prefacio
Recientemente, me uní a una nueva empresa. La empresa abrió un nuevo proyecto para la ciudad del futuro, que necesita usar el modelado de ciudades en 3D. El jefe de la empresa eligió Mars3d como el marco frontal. El proyecto me fue asignado. Es un campo completamente nuevo ¡Bar!
Aquí hay algunos pequeños problemas que encontré, anótelos:
- 1 npm install copy-webpack-plugin --save-dev informa de un error
Solución: npm install copy-webpack-plugin --save-dev --legacy-peer-deps
-
2 El segundo pequeño error es un descuido muy simple, código de error: const path = require('path')SyntaxError: El identificador 'path' ya ha sido declarado Solución: Verifique el código, es decir, escriba esta declaración nuevamente por usted mismo, solo eliminar el código repetido.
-
3 ERROR TypeError: compilation.getCache no es una función
Solución: este error generalmente se debe a la discrepancia de versión entre nuestro paquete web y el complemento copy-webpack. En este momento, solo necesitamos eliminar nuestro propio complemento copy-webpack, y luego simplemente instale una versión más baja ( esta puede ser la secuela del primer problema de instalación )
Dos instrucciones: desinstalar: npm desinstalar copy-webpack-plugin, instalar: instalé [email protected], I The webpack version es -
4 ERROR Error: [copy-webpack-plugin] los patrones deben ser una matriz
Solución: Esto significa que los parámetros de nuestra configuración new CopyWebpackPlugin() deben ser una matriz, y el código que copiamos del sitio web oficial parece ser
new CopyWebpackPlugin({
patterns: [
{
from: path.join(cesiumSourcePath, 'Workers'), to: path.join(config.output.path, cesiumRunPath, 'Workers') },
{
from: path.join(cesiumSourcePath, 'Assets'), to: path.join(config.output.path, cesiumRunPath, 'Assets') },
{
from: path.join(cesiumSourcePath, 'ThirdParty'), to: path.join(config.output.path, cesiumRunPath, 'ThirdParty') },
{
from: path.join(cesiumSourcePath, 'Widgets'), to: path.join(config.output.path, cesiumRunPath, 'Widgets') }
]
}),
Solo cámbialo a esto
new CopyWebpackPlugin([
{
from: path.join(cesiumSourcePath, 'Workers'), to: path.join(config.output.path, cesiumRunPath, 'Workers') },
{
from: path.join(cesiumSourcePath, 'Assets'), to: path.join(config.output.path, cesiumRunPath, 'Assets') },
{
from: path.join(cesiumSourcePath, 'ThirdParty'), to: path.join(config.output.path, cesiumRunPath, 'ThirdParty') },
{
from: path.join(cesiumSourcePath, 'Widgets'), to: path.join(config.output.path, cesiumRunPath, 'Widgets') }
]
)
-
5
No se encontraron estas dependencias:
@turf/turf en ./node_modules/mars3d/dist/mars3d.js
*mars3d-cesium en ./node_modules/mars3d/dist/mars3d.js, ./src/main.js
Para instalarlas , puede ejecutar: npm install --save @turf/turf mars3d-cesium
Esto es muy simple, solo siga estas instrucciones. npm install --save @turf/turf mars3d-cesium -
6 Error de sintaxis: TypeError: no se pueden leer las propiedades de undefined (leyendo 'parseComponent')
Solución: este problema es causado por versiones inconsistentes de vue y vue-template-compiler
"vue": "2.7.14",
"vue-template-compiler": "^2.6.14"
- 7 Error al compilar. ./node_modules/mars3d-cesium/Build/Cesium/index.js 75:1800
Solución: Este es el problema de la versión mars3d-cesium, la versión fija de mars3d-cesium es 1.95, "mars3d-cesium": " 1.95 .1” [Ten cuidado de no ^]
Puedes consultar el artículo original de "Little Jessie"