在Webpack中,如何动态设置公共路径?

Web*_*urk 3 node.js typescript webpack

我正在使用Angular2/Typescript/Webpack来构建一个应用程序

我在动态设置webpack选项"publicPath"时遇到问题.在官方Webpack文档中,它说:

注意:如果在编译时未知输出文件的最终publicPath,则可以将其留空并在运行时在入口点文件中动态设置.如果您在编译时不知道publicPath,则可以省略它并在入口点上设置webpack_public_path.

我的问题:但是如何设置这个__webpack_public_path__变量呢?

我以为我必须设置它src/main.ts,但是ERROR in ./src/main.ts Cannot find name '__webpack_public_path__'.当我构建项目时我只是遇到编译器错误:

不是main.ts我应该设置这个变量吗?我甚至试图在文件的构建版本main.js中设置它,但这也不起作用.这是我的Webpack配置的一部分,我设置了入口点.

config.entry = isTest ? {} : {
    'polyfills': './src/polyfills.ts',
    'vendor': './src/vendor.ts',
    'app': './src/main.ts' // our angular app
};
Run Code Online (Sandbox Code Playgroud)

bas*_*rat 10

./src/main.ts中的编译器错误ERROR

TypeScript编译器错误大多只是非常强大的linting.更多关于此.

编译器错误只是告诉你TypeScript不知道的__webpack_public_path__.只需创建globals.d.ts:

declare var  __webpack_public_path__:string; 
Run Code Online (Sandbox Code Playgroud)

你应该是金色的.更多关于此