首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
V2EX  ›  JavaScript

Webpack 动态设置 __webpack_public_path__ 到底怎么用

  •  1
     
  •   Xheldon · 10 天前 · 246 次点击

    看了中文英文文档, 说的是可以替代 output.publicPath, 需要将 output.publicPath 设置成'', 然后在入口文件设置 __webpack_public_path__ = 'http:///a.com'; 就行了;

    预期结果是 htmlwebpackplugin 打包后的 html 文件中的 js 引入地址是 'http"//a.com/xx.js'

    我是这么做的:

    webpack.config.js 这么设置:

    output: {
    	filename: '[name].[hash:8].js',
    	publicPath: ''
    }
    

    htmlwebpackplugin 插件这么设置:

    let entries = glob.sync('./src/entries/**/index.js').reduce((prev, curr) => {
        prev['assets/' + curr.slice(14, -3)] = curr;
        return prev;
    }, {}); // entries 同时是 webpack 的 entry js
    
    let htmls = Object.keys(entries).map((html) => {
        return new HWP({
            title: html.slice(-5, -1), // 这些个不重要, 不要在意
            filename: `${html.slice(7, -6)}.html`, // 这些个不重要, 不要在意
            template: './src/tpl/index.html', 
            chunks: [html], // 这些个不重要, 不要在意
            inject: 'body', // 这些个不重要, 不要在意
            minify: false,
            data: {
                build: true
            }
        });
    });
    

    入口文件这么设置:

        __webpack_public_path__ = 'http://a.com';
        
        import a from './a.js';
        import b from './b.js';
        blabla...
    

    然后满心欢喜的期待生成的 html 中的 script 中的 src 属性是 http://a.com/**/*.js 但是并没有带上 http://a.com

    翻看了 SO, github, 都说这样就 OK 了, 但是我没有得到预期结果 是我遗漏了什么, 还是我对这个 __webpack_public_path__ 理解有误?

    2 回复  |  直到 2018-09-17 13:49:38 +08:00
        1
    readonly   9 天前 via iPhone
    感觉是 import 语法自动提升了
        2
    Xheldon   7 天前
    @readonly 没, 试了下, 跟语法提升没关系 =_=
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1819 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 16ms · UTC 12:21 · PVG 20:21 · LAX 05:21 · JFK 08:21
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1