我试着用python脚本批处理脚本的方法,从一个单一的文件守望叫:
#!/usr/bin/env python
"""
less-prefixed.py
Chains less and autoprefixer, to produce a minified, vendor-prefixed css file.
"""
# TODO: move config data to a config file
# TODO: delete the intermediate files generated by less
import argparse
import os
import subprocess
from pprint import pprint as pp
# Config data
node_folder = r'C:/Users/ClementMandragora/AppData/Roaming/npm'
less_script = os.path.join(node_folder, 'lessc.cmd')
autoprefixer_script = os.path.join(node_folder, 'autoprefixer.cmd')
parser = argparse.ArgumentParser()
parser.add_argument("--file-name", help="filename, not including the extension", required=True)
parser.add_argument("--working-dir", help="the directory to do the work in", required=True)
args = parser.parse_args()
print('\nArgs:')
pp(vars(args))
print('')
os.chdir(args.working_dir)
print('CWD: {c}\n'.format(c=os.getcwd() + '\n'))
print('Running less-css...')
# Compile and minify the less file to css.
# Include a sourcemap.
exitcode = subprocess.Popen([
less_script,
'--no-color',
'-x',
'--source-map={n}.css.map'.format(n=args.file_name),
'{n}.less'.format(n=args.file_name), # source
'{n}.min.css'.format(n=args.file_name) # dest
], cwd=args.working_dir).wait()
assert exitcode is 0, 'Nonzero return code from less! Got: {r}'.format(r=exitcode)
print('less compilation completed.\nRunning autoprefixer...')
# Run autoprefixer over the result from lessc.
exitcode = subprocess.Popen([
autoprefixer_script,
'-o',
'{n}.prefixed.min.css'.format(n=args.file_name), # dest
'{n}.min.css'.format(n=args.file_name) # source
], cwd=args.working_dir).wait()
assert exitcode is 0, 'Nonzero return code from autoprefixer! Got: {r}'.format(r=exitcode)
print('autoprefixer completed.\nFinal filename is {n}.prefixed.min.css'.format(n=args.file_name))
它的工作,但似乎笨拙。
下一次尝试有多个文件观察者;事实证明,有autoprefixer监视更改为CSS文件,然后生成另一个CSS文件,导致循环。
因此,我在Webstorm中为与*.min.css
(较少转译器的输出)匹配的文件创建了一个自定义文件类型,然后为该扩展创建了一个File Watcher。从默认的其他差异/包括少文件守望者是:
- 计划:
C:\Users\ClementMandragora\AppData\Roaming\npm\autoprefixer.cmd
- 参数:
-o $FileNameWithoutExtension$.prefixed.css $FileName$
- 输出路径刷新:
$FileNameWithoutExtension$.prefixed.css:$FileNameWithoutExtension$.prefixed.css.map
它最初并不是清楚我'刷新的输出路径'也标志着Webstorm将生成的文件放在主文件* .less下,减少了项目的混乱。 (我保持源和输出在同一个文件夹。)
这应该是答案,它的工作:)使用WS10测试 – reggieboyYEAH