我有一个遗留的项目,我想把它从吞咽到webpack。项目使用wiredep和一元化的注入插件,所以所有代码都依赖全局,而且也不需要导入CommonJS/AMD/ES6模块。但据我所知,webpack通过解析基于模块导入的依赖关系图来构建包。是否有可能将这样的项目迁移到webpack,然后逐步更新代码以使用ES6导入和删除全局?webpack有类似于有线的东西吗?您建议如何逐步将项目迁移到ES6模块?
发布于 2018-08-18 22:36:00
没有使用wiredep或gulp-inject插件的经验,然后阅读这两个库所做的事情,下面的内容可能有助于您理解迁移以及可以使用哪些插件。
Webpack曝光装载机
外露装载机webpack插件允许您将库添加到全局命名空间。这样,您的代码中需要它的其他部分将能够访问它。
杯注射Webpack插件
我会让医生们自己说话。
Gulp有一个优秀的HTML编写器,名为。它有很多强大的功能。 如果您有要迁移到Webpack的现有项目,希望这些特性能够立即与Webpack CLI一起工作。 这个插件封装了Gulp注入,这样您就可以不用运行Gulp就可以使用它。它依赖于用于Gulp的Vinyl文件系统,而不依赖于Gulp本身。
通过合并这两个插件,您应该能够迁移到Webpack,而不需要调整您的应用程序的整个结构。
我希望这能帮到你。
发布于 2018-09-08 08:22:00
最后,我使用了webpack-concat-plugin,它允许您将来自bower_component (不仅是)库的js依赖连接到一个包中,然后可选地缩小它并注入到index.html (使用html-webpack-plugin)中,因此它允许我创建非常类似于使用gulp的项目的设置。唯一的问题是,现在我应该在wiredep自动完成时,显式地指定来自bower_components的所有js文件。这个插件解决了整个问题:
new ConcatPlugin({
uglify: true, // actually it is just a minifier
sourceMap: false,
name: 'bower.bundle',
outputPath: 'vendor',
fileName: '[name].js',
filesToConcat: [
"@bower_components/jquery/jquery.min.js",
...
],
attributes: {
async: false // file order is preserved same as in 'filesToConcat'
}https://stackoverflow.com/questions/51911678
复制相似问题