Skip to content

Latest commit

 

History

History
72 lines (57 loc) · 2 KB

webpack.md

File metadata and controls

72 lines (57 loc) · 2 KB

Sử dụng Webpack trong dự án

Nodejs command phổ thông

npm run watch // Chạy localhost:3000 mở tab mới trình duyệt
npm run build // Chạy bản build .min.css, .min.js phục vụ deploy (thường do GitHub tự build trên branch develop)
npm run fix // Chạy fix các lỗi code standard CSS, JS, PHP (sai tab indent, xuống dòng...)
npm run test // Kiểm tra các lỗi code standard nhưng không fix, trả về báo lỗi nếu thấy

Cấu hình local domain

Để npm run watch hoạt động đúng domain, ban cần vào cấu hình file `config/webpack.settings.js``

proxy: {
  target: 'http://codetot-shop.test', // Thay chỗ này
  proxyReq: [
    proxyReq => {
      proxyReq.setHeader('X-Codetot-Header', 'development')
    }
  ]
},

Cho phép copy file/folder trong src/

Một số file cần copy thì .svg, .png thì cần bổ sung thao tác copy cho Webpack, tiến hành như sau:

File: webpack.common.js

Có file nào thì copy {} của cái đó, nếu không sẽ báo lỗi.

Ví dụ như copy 1 thư viện jQuery, thì copy file chưa .min.js vd jquery.validate.js vào folder src/js/vendors/jquery.validate.js

Sau đó copy đoạn copy chỉ file vendor js vào như thế này:

{
  from: '**/vendors/*.js',
  to: '[path][name].min.[ext]',
  context: path.resolve(process.cwd(), settings.paths.src.base)
}

Source tham khảo đầy đủ:

const CopyWebpackPlugin = require('copy-webpack-plugin') // Cái này thêm vào phía trên cùng

...
new CopyWebpackPlugin({
  patterns: [
    {
      from: '**/vendors/*.js',
      to: '[path][name].min.[ext]',
      context: path.resolve(process.cwd(), settings.paths.src.base)
    },
    {
      from: '**/*.{jpg,jpeg,png,gif}',
      to: '[path][name].[ext]',
      context: path.resolve(process.cwd(), settings.paths.src.base)
    },
    {
      from: '**/*.svg',
      to: '[path][name].[ext]',
      context: path.resolve(process.cwd(), settings.paths.src.base)
    }
  ]
}),