簡體   English   中英

如何使用Node自定義此構建腳本?

[英]How can I customize this build script with Node?

我有一個獨特的目錄結構,我需要幫助來制作構建腳本。
這是鏈接 (略有不同)或目錄結構:

client
  /extensions
  /sandbox
  /widgets
    /form
      /collections
      /models
      /views
      /styles
        custom.css
      /controllers
  main.coffee
server
  /views
    /layouts
    /errors
  app.coffee
  config.coffee

我需要的幾件事情:

  • 將帶有監視任務的coffeescript編譯為server-dist + client-dist
  • 將所有其他文件復制到它們的嵌套文件夾中,最好同時執行監視任務

問題:

  • 如果我只是編譯coffeescript,它只是將.coffee文件復制到.js到它們的嵌套目錄中,但是留下了裝有require.js的.css / imgs / etc。 我需要一種將它們也帶入-dist目錄的方法
  • / client文件夾中的Main.coffee是require.config,可以與requirejs grunt構建工具一起使用來優化內容。

無論如何,最簡單的解決方案就是我想要的。

我最終使用grunt-完成以下任務:

  • clean :清除服務器/客戶端構建目錄
  • watch :監視.coffee文件和兩個構建目錄
  • 復制 :復制客戶端/服務器文件以建立目錄,而忽略由coffee任務管理的.coffee文件
  • coffee :將.coffee文件編譯為.js,將其移動到構建目錄

這是當前迭代中的grunt文件:

grunt.initConfig({

 clean: {
   build: ['client-dist', 'server-dist'],
   release: []
 },

 watch: {
   coffee: {
     files: ['client/**/*.coffee', 'server/**/*.coffee'],
     tasks: 'coffee reload'
   },
   reload: {
     files: ['client/**/*.!(coffee)', 'server/**/*.!(coffee)'],
     tasks: 'copy reload'
   }
 },

 copy: {
   client: {
     files: {
       "client-dist/": "client/**/*.!(coffee)"
     },
     options: {
       basePath: "client"
     }
   },
   server: {
     files: {
       "server-dist/": "server/**/*.!(coffee)"
     },
     options: {
       basePath: "server"
     }
   }
 },

 coffee: {
   compile: {
     files: {
       'server-dist/*.js': 'server/**/*.coffee',
       'client-dist/*.js': 'client/**/*.coffee'
       }
     }
 }

});

grunt.loadNpmTasks('grunt-contrib');
grunt.loadNpmTasks('grunt-reload');

grunt.registerTask('default', '');
grunt.registerTask('build', 'clean:build copy coffee watch');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM