NPM 包缺少缩小脚本的解决方法

Workaround for NPM Package Missing Minified Scripts

我正在尝试使用 jquery-validation-unobtrusive NPM package. Unfortunately the package authors do not include the minified version of the script in question. They seem to exclude it using the files section in the package.json, even though the minified jquery.validate.unobtrusive.min.js does exist in the GitHub project:

"files": [
  "jquery.validate.unobtrusive.js"
]

我如何覆盖上述内容并强制从包中下载 jquery.validate.unobtrusive.min.js 文件?

您不能强制 npm 下载缩小文件。作者发布的内容就是您在安装包时收到的内容。

也就是说,npm 可以安装 tarball 并且 GitHub 允许您将 repostory 下载为 tarball。您可以依赖存储库的 tarball 存档而不是 jquery-validation-unobtrusive.

使用jquery-validation-unobtrusive:

tmp.pRVlIN3W $ npm i jquery-validation-unobtrusive
/tmp/tmp.pRVlIN3W
└─┬ jquery-validation-unobtrusive@3.2.6 
  ├── jquery@3.1.1 
  └─┬ jquery-validation@1.15.1 
    └── jquery@2.2.4

tmp.pRVlIN3W $ tree node_modules/jquery-validation-unobtrusive
node_modules/jquery-validation-unobtrusive
├── LICENSE.txt
├── README.md
├── jquery.validate.unobtrusive.js
└── package.json

0 directories, 4 files

使用https://github.com/aspnet/jquery-validation-unobtrusive/archive/master.tar.gz:

tmp.PEJ4zTT6 $ npm i https://github.com/aspnet/jquery-validation-unobtrusive/archive/master.tar.gz
/tmp/tmp.PEJ4zTT6
└─┬ jquery-validation-unobtrusive@3.2.6 
  ├── jquery@3.1.1 
  └─┬ jquery-validation@1.15.1 
    └── jquery@2.2.4 

tmp.PEJ4zTT6 $ tree node_modules/jquery-validation-unobtrusive/
node_modules/jquery-validation-unobtrusive/
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── bower.json
├── gulpfile.js
├── jquery.validate.unobtrusive.js
├── jquery.validate.unobtrusive.min.js
└── package.json

0 directories, 8 files

(您也可以通过用标签替换 URL 中的 master 来依赖特定版本的包。有关详细信息,请参阅 npm install。)