首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用phpStorm将js文件合并为一个文件

问使用phpStorm将js文件合并为一个文件
EN

Stack Overflow用户
提问于 2014-08-14 03:12:10
回答 1查看 3K关注 0票数 4

使用phpStorm,我想将多个JavaScript文件合并为一个文件。我安装了闭包编译器,并配置了文件观察器来缩小每个JavaScript文件。

现在,我想把我所有的JavaScript文件合并成一个文件。

下面是我的项目(合并js文件的测试项目)的架构:

代码语言:javascript
复制
index.php
js(folder) >
    first.js (+first.min.js),
    second.js (+second.min.js),
    third.js (+third.min.js)
cache (folder)
    main.js

我想合并(first.min.js,second.min.js,third.min.js)到文件夹cache > main.js。

理想情况下,合并所有文件将自动发生;我不想手动指定每个js文件。

有人能解释一下我必须用来配置文件守护程序的参数吗?

EN

回答 1

Stack Overflow用户

发布于 2017-12-28 23:46:21

我使用了npm插件concat、minifier和walk。

下面是我编写的脚本:

代码语言:javascript
复制
var walk = require('walk'),
    concat = require('concat'),
    minifier = require('minifier'),
    files = [];

var JS_SOURCES_DIR = 'app/components',
    JS_LAST_FILE = 'app/app.module.js',
    JS_DIR = 'app/',
    JS_FULL_FILE = JS_DIR + 'app.js',
    JS_MINIFIED_FILE = 'app.min.js',
    JS_MINIFIED_FILE_PATH = JS_DIR + JS_MINIFIED_FILE;

var walker = walk.walk(JS_SOURCES_DIR, {followLinks: false});

walker.on('file', (root, stat, next) => {
    var fullpath = root.replace(/\\/g, '/');
    var regex = new RegExp(/.+\.js$/);
    if (stat.name.match(regex)) {
        files.push(fullpath + '/' + stat.name);
    }
    next();
});

walker.on('end', function () {
    files.push(JS_LAST_FILE);
    files.forEach(function (item) {
        console.log(item);
    })
    concat(files, JS_FULL_FILE).then((result) => {
        minifier.minify(JS_FULL_FILE, {output: JS_MINIFIED_FILE_PATH});
        console.log('\n[OK] ' + JS_MINIFIED_FILE + ' sucessfully updated');
    }, function (error) {
        console.log('[ERROR] JS concat failure: ' + error.message);
    });
});

minifier.on('error', function (error) {
    console.log('\n[ERROR] JS minify error: ' + error);
});

首先使用walker,文件被添加到var " files“中。在构建模块并在该文件中添加所有依赖项时,我将JS_LAST_FILE用于angularjs关注点。然后将文件连接到JS_FULL_FILE。最后,JS_FULL_FILE被缩减为JS_MINIFIED_FILE。

当文件更新时,我不使用监视器来触发concat脚本。相反,当我在本地工作时,我不会连接文件,而只是使用一个使用php scandir()的自制函数将它们添加到页面的head部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25294296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档