创建了create-react-app文件之后,在根目录的/public/index.html中得到了
<link rel="manifest" href="%PUBLIC_URL%/manifest.json">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
这样的代码,然后我想查找PUBLIC_URL的来源,在/config/path.js里面发现了这样一段代码:
const envPublicUrl = process.env.PUBLIC_URL;
也就是说它是挂在环境变量上的
但我没有发现更多的线索了,通过查看API我大致了解了有关/public文件夹下的文件导入项目的原理,但还是非常疑惑
这里但PUBLIC_URL是通过什么方式就进入了环境变量呢?或者说是怎么得到的?
在config/paths文件夹下,修改了
function getServedPath(appPackageJson) {
const publicUrl = getPublicUrl(appPackageJson);
const servedUrl =
envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : '/');
return ensureSlash(servedUrl, true);
}
修改快pathname可以修改servedUrl,从而原本静态文件的读取路径,但这个时候我发现PUBLIC_URL也同样发生了改变,这又是为什么?
恳请老师解答,谢谢
轻松入门 React 开发,React Router 4 与 Webpack 2 完美升级项目
了解课程