|
1 | | -/* eslint-disable no-process-env */ |
| 1 | +// Legacy Gruntfile — kept only for the 'metrics' and 'version' tasks. |
| 2 | +// The main build pipeline uses rspack + swc (see rspack.config.js and .swcrc). |
2 | 3 | module.exports = function (grunt) { |
3 | 4 | grunt.initConfig({ |
4 | 5 | pkg: grunt.file.readJSON('package.json'), |
5 | | - |
6 | | - clean: ['tmp', 'dist', 'tests/integration/**/node_modules'], |
7 | | - |
8 | | - copy: { |
9 | | - dist: { |
10 | | - options: { |
11 | | - processContent: function (content) { |
12 | | - return ( |
13 | | - grunt.template.process( |
14 | | - '/**!\n\n @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat\n <%= pkg.name %> v<%= pkg.version %>\n\n<%= grunt.file.read("LICENSE") %>\n*/\n' |
15 | | - ) + |
16 | | - content + |
17 | | - '\n// @license-end\n' |
18 | | - ); |
19 | | - }, |
20 | | - }, |
21 | | - files: [{ expand: true, cwd: 'dist/', src: ['*.js'], dest: 'dist/' }], |
22 | | - }, |
23 | | - components: { |
24 | | - files: [ |
25 | | - { |
26 | | - expand: true, |
27 | | - cwd: 'components/', |
28 | | - src: ['**'], |
29 | | - dest: 'dist/components', |
30 | | - }, |
31 | | - { |
32 | | - expand: true, |
33 | | - cwd: 'dist/', |
34 | | - src: ['*.js'], |
35 | | - dest: 'dist/components', |
36 | | - }, |
37 | | - ], |
38 | | - }, |
39 | | - }, |
40 | | - |
41 | | - babel: { |
42 | | - options: { |
43 | | - sourceMaps: 'inline', |
44 | | - loose: ['es6.modules'], |
45 | | - auxiliaryCommentBefore: 'istanbul ignore next', |
46 | | - }, |
47 | | - cjs: { |
48 | | - files: [ |
49 | | - { |
50 | | - cwd: 'lib/', |
51 | | - expand: true, |
52 | | - src: '**/!(index).js', |
53 | | - dest: 'dist/cjs/', |
54 | | - }, |
55 | | - ], |
56 | | - }, |
57 | | - }, |
58 | | - webpack: { |
59 | | - options: { |
60 | | - context: __dirname, |
61 | | - output: { |
62 | | - path: 'dist/', |
63 | | - library: 'Handlebars', |
64 | | - libraryTarget: 'umd', |
65 | | - }, |
66 | | - }, |
67 | | - handlebars: { |
68 | | - entry: './dist/cjs/handlebars.js', |
69 | | - output: { |
70 | | - filename: 'handlebars.js', |
71 | | - }, |
72 | | - }, |
73 | | - runtime: { |
74 | | - entry: './dist/cjs/handlebars.runtime.js', |
75 | | - output: { |
76 | | - filename: 'handlebars.runtime.js', |
77 | | - }, |
78 | | - }, |
79 | | - }, |
80 | | - |
81 | | - uglify: { |
82 | | - options: { |
83 | | - mangle: true, |
84 | | - compress: true, |
85 | | - preserveComments: /(?:^!|@(?:license|preserve|cc_on))/, |
86 | | - }, |
87 | | - dist: { |
88 | | - files: [ |
89 | | - { |
90 | | - cwd: 'dist/', |
91 | | - expand: true, |
92 | | - src: ['handlebars*.js', '!*.min.js'], |
93 | | - dest: 'dist/', |
94 | | - rename: function (dest, src) { |
95 | | - return dest + src.replace(/\.js$/, '.min.js'); |
96 | | - }, |
97 | | - }, |
98 | | - ], |
99 | | - }, |
100 | | - }, |
101 | | - |
102 | | - concat: { |
103 | | - tests: { |
104 | | - src: ['spec/!(require).js'], |
105 | | - dest: 'tmp/tests.js', |
106 | | - }, |
107 | | - }, |
108 | | - |
109 | | - connect: { |
110 | | - server: { |
111 | | - options: { |
112 | | - base: '.', |
113 | | - hostname: '*', |
114 | | - port: 9999, |
115 | | - }, |
116 | | - }, |
117 | | - }, |
118 | | - |
119 | | - shell: { |
120 | | - integrationTests: { |
121 | | - command: './tests/integration/run-integration-tests.sh', |
122 | | - }, |
123 | | - }, |
124 | | - |
125 | | - watch: { |
126 | | - scripts: { |
127 | | - options: { |
128 | | - atBegin: true, |
129 | | - }, |
130 | | - |
131 | | - files: ['src/*', 'lib/**/*.js', 'spec/**/*.js'], |
132 | | - tasks: ['on-file-change'], |
133 | | - }, |
134 | | - }, |
135 | 6 | }); |
136 | 7 |
|
137 | | - // Load tasks from npm |
138 | | - grunt.loadNpmTasks('grunt-contrib-clean'); |
139 | | - grunt.loadNpmTasks('grunt-contrib-concat'); |
140 | | - grunt.loadNpmTasks('grunt-contrib-connect'); |
141 | | - grunt.loadNpmTasks('grunt-contrib-copy'); |
142 | | - grunt.loadNpmTasks('grunt-contrib-uglify'); |
143 | | - grunt.loadNpmTasks('grunt-contrib-watch'); |
144 | | - grunt.loadNpmTasks('grunt-babel'); |
145 | | - grunt.loadNpmTasks('grunt-shell'); |
146 | | - grunt.loadNpmTasks('grunt-webpack'); |
147 | | - |
148 | 8 | grunt.task.loadTasks('tasks'); |
149 | | - |
150 | | - grunt.registerTask('node', ['babel:cjs']); |
151 | | - grunt.registerTask('globals', ['webpack']); |
152 | | - grunt.registerTask('release', 'Build final packages', [ |
153 | | - 'uglify', |
154 | | - 'copy:dist', |
155 | | - 'copy:components', |
156 | | - ]); |
157 | | - |
158 | | - grunt.registerTask('on-file-change', ['build', 'concat:tests']); |
159 | | - |
160 | | - // === Primary tasks === |
161 | | - grunt.registerTask('dev', ['clean', 'connect', 'watch']); |
162 | | - grunt.registerTask('default', ['clean', 'build', 'release']); |
163 | | - grunt.registerTask('bench', ['metrics']); |
164 | | - grunt.registerTask('prepare', ['build', 'concat:tests']); |
165 | | - grunt.registerTask( |
166 | | - 'build', |
167 | | - 'Builds a distributable version of the current project', |
168 | | - ['node', 'globals'] |
169 | | - ); |
170 | | - grunt.registerTask('integration-tests', [ |
171 | | - 'default', |
172 | | - 'shell:integrationTests', |
173 | | - ]); |
174 | 9 | }; |
0 commit comments