Skip to content

Critical dependency: the request of a dependency is an expression #6

@iva2k

Description

@iva2k

Using jzz@1.3.9 package (which has jazz-midi package as a dependency) in a React app (create-react-app), gets this warning:

./node_modules/jazz-midi/index.js
Critical dependency: the request of a dependency is an expression

The problem is any CI flow treats warnings as errors and chokes on it.

Looking into ./node_modules/jazz-midi/index.js:

var path='./bin/';
var v=process.versions.node.split('.');
if (v[0]<=10) path+='10_15/';
else if (v[0]<=11) path+='11_15/';
if(process.platform=="win32"&&process.arch=="ia32") path+='win32/jazz';
else if(process.platform=="win32"&&process.arch=="x64") path+='win64/jazz';
else if(process.platform=="darwin"&&process.arch=="x64") path+='macos64/jazz';
else if(process.platform=="linux"&&process.arch=="x64") path+='linux64/jazz';
else if(process.platform=="linux"&&process.arch=="arm") path+='linuxa7/jazz';
module.exports=require(path);
module.exports.package=require(__dirname + '/package.json');

... which has a dynamic require().

Webpack docs explain it here:
https://webpack.js.org/guides/dependency-management/#require-with-expression

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions