PhpStorm文件监视器来缩小和合并来自多个文件夹的JS文件

时间:2017-07-07 08:34:05

标签: phpstorm

我正在努力完成以下任务。

我在应用程序根目录中的文件夹assets/js中有原始资源,例如JavaScript源文件。我还有文件夹public,其中应该包含将在应用程序中加载的缩小文件。

我想要的是当我更改我的js文件时,我想让IDE创建它的缩小版本,然后将这些缩小的文件合并到public文件夹中。

我需要两个文件监视器,但不知道如何配置它们。

我尝试了YUI Compressor的默认选项,以及那些在源文件所在的同一文件夹中构建缩小文件的选项。但我无法将这些文件与File Watcher合并。

我还创建了两个范围,一个用于源JS文件,另一个用于缩小的JS文件。

我甚至不确定File Watchers是否可以这样做。我在谈论多个文件夹和递归范围。

我将不胜感激。

3 个答案:

答案 0 :(得分:1)

文件观察者本身无法做任何事情,因为它只不过是一种使用CLI设置某个工具作为文件更改的监听器的方法。因此,您需要找到一个工具,将缩小的文件合并到一个文件中,并将其设置为观察者,外部工具等。您可以在网上找到大量此类文件 - 请参阅 例如Combine multiple JavaScript files into one JS file

但是,我建议使用Grunt,Gulp,webpack,而不是使用2个单独的工具设置为观察者等。 您可以尝试使用grunt-contrib-uglify,例如:

module.exports = function (grunt) {
grunt.initConfig({

    ngmin: {
           concat:{
            src: ['assets/js/*.js'],
            dest: 'public/out.min.js'
    }}
});
grunt.loadNpmTasks('grunt-ngmin');

grunt.registerTask('default', ['ngmin' ])

您可以使用Grunt console运行任务,或将其配置为文件观察程序

答案 1 :(得分:0)

我要做的是让YUI压缩器创建保存.min.js文件,然后用作外部工具(Settings->Tools->External Tools)这个工具compressJS for linux OS(如果你有窗户,你可以尝试调整脚本或在Linux env中运行它,如docker,vm等 - 最终从设置中使用远程SSH外部工具。)

最后,您可以设置工具的键盘图,以便随时运行它。 您也可以将其设置为文件观察程序,但这将是过多的处理imho。

答案 2 :(得分:0)

好的我已经设置了gulp任务来缩小和连接文件。然后我用我的JS文件的gulp任务创建了自定义文件观察器。现在一切都按照我的意图运作,而不必手动运行任何东西。谢谢你们。 :)