Struct static_files::NpmBuild [−][src]
pub struct NpmBuild { /* fields omitted */ }Executes npm commands before collecting resources.
Example usage:
Add build.rs with call to bundle resources:
use static_files::NpmBuild;
fn main() {
NpmBuild::new("./web")
.install().unwrap() // runs npm install
.run("build").unwrap() // runs npm run build
.target("./web/dist")
.to_resource_dir()
.build().unwrap();
}
Include generated code in main.rs:
include!(concat!(env!("OUT_DIR"), "/generated.rs"));
Implementations
impl NpmBuild[src]
pub fn new<P: AsRef<Path>>(package_json_dir: P) -> Self[src]
pub fn executable(self, executable: &str) -> Self[src]
Allow the user to set their own npm-like executable (like yarn, for instance)
pub fn change_detection(self) -> Self[src]
Generates change detection instructions.
It includes package.json directory, ignores by default node_modules, package.json and package-lock.json and target directory.
Each time npm changes timestamps on these files, so if we do not ignore them - it runs npm each time.
It is recommended to put your dist files one level deeper. For example, if you have web with package.json
and dist just below that, you better generate you index.html somewhere in web\dist\sub_path\index.html.
Reason is the same, npm touches dist each time and it touches the parent directory which in its turn triggers the build each time.
For complete example see: Angular Router Sample.
If default behavior does not work for you, you can use change-detection directly.
pub fn install(self) -> Result<Self>[src]
Executes npm install.
pub fn run(self, cmd: &str) -> Result<Self>[src]
Executes npm run CMD.
pub fn target<P: AsRef<Path>>(self, target_dir: P) -> Self[src]
Sets target (default is node_modules).
pub fn to_resource_dir(self) -> ResourceDir[src]
Converts to ResourceDir.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for NpmBuild
impl Send for NpmBuild
impl Sync for NpmBuild
impl Unpin for NpmBuild
impl UnwindSafe for NpmBuild
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,