Tôi đang phát triển một ứng dụng Angular2 trong VS2015 và có một gói webpack và môi trường tối thiểu được thiết lập cho cùng một.MSBuild và Webpack
Đây là webpack.conf.js tôi
switch (process.env.NODE_ENV) {
case 'prod':
case 'production':
module.exports = require('./config/webpack.prod');
break;
case 'test':
case 'testing':
//module.exports = require('./config/webpack.test');
break;
case 'dev':
case 'development':
default:
module.exports = require('./config/webpack.dev');
}
Tôi cũng đã cài đặt một Á hậu nhiệm vụ webpack mà gọi này với các lệnh sau
cmd /c SET NODE_ENV=development&& webpack -d --color
và
cmd /c SET NODE_ENV=production&& webpack -p --color
Thiết lập có vẻ hoạt động tốt. Tuy nhiên, tôi muốn tích hợp điều này với TFS xây dựng CI của tôi. Lệnh webpack sẽ kích hoạt sau khi dự án được xây dựng và báo cáo lỗi xây dựng trong khi quá trình xây dựng webpack không thành công. Tôi đã cố gắng để kết hợp các đoạn mã sau vào file csproj tôi
<Target Name="AfterBuild">
<Exec Condition="$(Configuration) == 'Debug'" Command="cmd /c SET NODE_ENV=production&& webpack -p --color">
</Exec>
</Target>
Nó thất bại với một lỗi 9009
Sau đó tôi đã cố gắng, bắt đầu lệnh lên từ thư mục node_modules nơi webpack đã được cài đặt
<Target Name="AfterBuild">
<Exec Condition="$(Configuration) == 'Debug'" Command="./node_modules/.bin cmd /c SET NODE_ENV=production&& webpack -p --color">
</Exec>
</Target>
vẫn vô ích. Ngay cả khi tôi nhận được điều này để làm việc, tôi không chắc chắn nếu nó sẽ gây ra VS xây dựng thất bại nếu nó gặp một lỗi trong webpack.
Làm cách nào để tiếp tục với điều này?
Có thể bạn chỉ cần một khoảng trắng? Trong đoạn mã thứ hai, thay thế 'SET NODE_ENV = production && 'bằng cách này -' SET NODE_ENV = production && '. Tôi biết nó ngớ ngẩn. Nhưng đó là những gì tôi có thể cung cấp! : D – Mihir