Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IOError building terser-webpack-plugin #40

Open
paulyoung opened this issue Dec 7, 2018 · 0 comments
Open

IOError building terser-webpack-plugin #40

paulyoung opened this issue Dec 7, 2018 · 0 comments

Comments

@paulyoung
Copy link

...
Creating binaries in /nix/store/mf3mihgd2mizk237p7ngh5swn5qfviq6-terser-webpack-plugin-1.1.0-nodejs-8.12.0/bin
bin_name: terser-webpack-plugin
bin_abs_path: /nix/store/mf3mihgd2mizk237p7ngh5swn5qfviq6-terser-webpack-plugin-1.1.0-nodejs-8.12.0/lib/node_modules/terser-webpack-plugin
Traceback (most recent call last):
  File "/nix/store/zd4zda85991mrwaw8q53g1dxy3rrg24y-node-build-tools/bin/install-binaries", line 59, in <module>
    with open(bin_abs_path) as f:
IOError: [Errno 21] Is a directory: u'/nix/store/mf3mihgd2mizk237p7ngh5swn5qfviq6-terser-webpack-plugin-1.1.0-nodejs-8.12.0/lib/node_modules/terser-webpack-plugin'
...

The bin_name: ... and bin_abs_path: ... lines are due to the following local changes:

diff --git a/nix/nix-node-packages/nodeLib/tools/install-binaries b/nix/nix-node-packages/nodeLib/tools/install-binaries
index 12de49b1..aec19510 100755
--- a/nix/nix-node-packages/nodeLib/tools/install-binaries
+++ b/nix/nix-node-packages/nodeLib/tools/install-binaries
@@ -44,11 +44,13 @@ print("Creating binaries in {}".format(bin_folder))

 for bin_name, bin_path in _bin.items():
     bin_name = (bin_name or "").strip()
+    print("bin_name: {}".format(bin_name))
     if bin_name == "":
         sys.exit("Blank binary name for package {}".format(pname))
     # Get the absolute path of the script being pointed to.
     bin_abs_path = normpath(join(out_dir, "lib", "node_modules",
                             package["name"], bin_path))
+    print("bin_abs_path: {}".format(bin_abs_path))
     if not exists(bin_abs_path):
         sys.exit("Package {} version {} declares a binary {} at path {}, "
                  "but there is no such file at that path.".format(

Here's some output from a package that builds correctly, for comparison:

...
Creating binaries in /nix/store/r4pv9vvrr6b18ymwmbcqm6hbhm1709ka-webpack-cli-3.1.2-nodejs-8.12.0/bin
bin_name: webpack-cli
bin_abs_path: /nix/store/r4pv9vvrr6b18ymwmbcqm6hbhm1709ka-webpack-cli-3.1.2-nodejs-8.12.0/lib/node_modules/webpack-cli/bin/cli.js
...

The package.json says "bin": "", at https://github.com/webpack-contrib/terser-webpack-plugin/blob/v1.1.0/package.json#L10

It seems as if the checks here are insufficient:

for bin_name, bin_path in _bin.items():
bin_name = (bin_name or "").strip()
if bin_name == "":
sys.exit("Blank binary name for package {}".format(pname))
# Get the absolute path of the script being pointed to.
bin_abs_path = normpath(join(out_dir, "lib", "node_modules",
package["name"], bin_path))
if not exists(bin_abs_path):
sys.exit("Package {} version {} declares a binary {} at path {}, "
"but there is no such file at that path.".format(
package["name"], package["version"], bin_name, bin_path))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant