Skip to content

Commit

Permalink
[infra] fix vendor import paths on built files
Browse files Browse the repository at this point in the history
A previous commit started (quasi-correctly) rewriting vendor import
paths on built files.  The gist of it was correct, but it incorrectly
rewrote paths in vendor itself.

The babel plugin in use operated on canonical absolute paths.  This mean
that it saw no difference between the import
`../vendor/pako/lib/utils/foo` and `../utils/foo`, where the later was
actually in the `vendor/pako/lib/bar` directory.  This rewrote imports
in files in the vendor directory itself.  However, since those files
were *already* in the correct relative location, the new import was
incorrect by a degree of `..`.

Now, we only rewrite vendor paths on things in the `core` directory.
  • Loading branch information
DirectXMan12 committed Oct 3, 2017
1 parent c4e5a50 commit a80955e
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions utils/use_require.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ var make_lib_files = function (import_format, source_maps, with_app_dir) {

const helpers = require('./use_require_helpers');
const helper = helpers[import_format];
var handleDir = (js_only, in_path_base, filename) => {

var handleDir = (js_only, vendor_rewrite, in_path_base, filename) => {
if (no_copy_files.has(filename)) return;

const out_path = path.join(out_path_base, path.relative(in_path_base, filename));
Expand All @@ -134,7 +134,7 @@ var make_lib_files = function (import_format, source_maps, with_app_dir) {
}
// Adjust for the fact that we move the core files relative
// to the vendor directory
if (!in_path) {
if (vendor_rewrite) {
opts.plugins.push(["import-redirect",
{"root": out_path_base,
"redirect": { "vendor/(.+)": "./vendor/$1"}}]);
Expand All @@ -161,11 +161,11 @@ var make_lib_files = function (import_format, source_maps, with_app_dir) {
helper.noCopyOverride(paths, no_copy_files);
}

walkDir(paths.core, handleDir.bind(null, true, in_path || paths.core), (filename, stats) => !no_copy_files.has(filename));
walkDir(paths.vendor, handleDir.bind(null, true, in_path || paths.main), (filename, stats) => !no_copy_files.has(filename));
walkDir(paths.vendor, handleDir.bind(null, true, false, in_path || paths.main), (filename, stats) => !no_copy_files.has(filename));
walkDir(paths.core, handleDir.bind(null, true, !in_path, in_path || paths.core), (filename, stats) => !no_copy_files.has(filename));

if (with_app_dir) {
walkDir(paths.app, handleDir.bind(null, false, in_path || paths.app), (filename, stats) => !no_copy_files.has(filename));
walkDir(paths.app, handleDir.bind(null, false, false, in_path), (filename, stats) => !no_copy_files.has(filename));

const out_app_path = path.join(out_path_base, 'app.js');
if (helper && helper.appWriter) {
Expand Down

0 comments on commit a80955e

Please sign in to comment.