文件中依赖了一个通过npm
安装的前端类库: sweetalert
,在打包时报出warning:
WARNING in ./~/sweetalert/dist/sweetalert-dev.js
Critical dependencies:
4:115-122 This seems to be a pre-built javascript file. Though this is possible
it's not recommended. Try to require the original source to get better results
@ ./~/sweetalert/dist/sweetalert-dev.js 4:115-122
一开始直接require('sweetalert')
报出上面的错误,网上并没有具体的,都是查到的其他的库的issue中提到的问题,根据那些问题猜到可能sweetalert
的package.json
中的main
指定为dist/sweetalert.min.js
是一个压缩好的文件,但是改成引用未压缩的还是报同样的错误: require('sweetalert/dist/sweetalert-dev.js')
.
难道要引用其项目中的开发环境下的入口文件?
通过翻查文档,在shimming-modules找到解决方案:
将其加入noParse
,让webpack
忽略对其进行解析。
刚看了 Sweetalert 的 package.json 文件。不难发现它的入口文件确实指向了一个编译后的结果。实际上这是一个不好的示范,通常 bower 的 package 倒会这样做。
给题主两个办法:
- 使用
alias
直接指向合适的文件 - fork 一份自己修改,无论是
npm install [repo]
也好或者npm link
也好,都可以解决这个问题(最好可以提交一个 pull request )。 - 忍着…(逃