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

impl Debug for NpmBuild[src]

impl Default for NpmBuild[src]

impl From<NpmBuild> for ResourceDir[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.