Búsqueda de sitios web

node.js - En Webpack, ¿cómo establezco la ruta pública dinámicamente?


Estoy usando Angular2/Typescript/Webpack para construir una aplicación

Estoy teniendo problemas para configurar la opción publicPath de Webpack de forma dinámica. En la documentación oficial de Webpack, dice:

Nota: En los casos en que el eventual publicPath de los archivos de salida no se conoce en tiempo de compilación, se puede dejar en blanco y establecer dinámicamente en tiempo de ejecución en el archivo de punto de entrada. Si no conoces el publicPath mientras compilas, puedes omitirlo y establecer __webpack_public_path__ en tu punto de entrada.

Mi pregunta: Pero, ¿cómo configuro esta variable __webpack_public_path__ y dónde?

Pensé que tendría que configurarlo en src/main.ts, pero luego solo obtengo el error del compilador ERROR in ./src/main.ts

Cannot find name '__webpack_public_path__' when I build the project:

¿No es main.ts donde debería establecer esta variable? Incluso traté de establecerla en la versión compilada del archivo, main.js, y tampoco funcionó. Aquí está parte de mi configuración de Webpack donde establezco el punto de entrada.

config.entry = isTest ? {} : {
    'polyfills': './src/polyfills.ts',
    'vendor': './src/vendor.ts',
    'app': './src/main.ts' // our angular app
};

Respuesta #1

error del compilador ERROR en ./src/main.ts

Los errores del compilador de TypeScript son en su mayoría solo un linting realmente potente. Más sobre esto.

Ese error del compilador solo te dice que TypeScript no sabe sobre __webpack_public_path__. Solo crea globals.d.ts con:

declare var  __webpack_public_path__:string; 

Y deberías estar bien. Más sobre esto 🌹

Artículos relacionados